基本上,我的想法是,如果我将无法预测其内容的字符串转换为十六进制字符串,然后在接收数据的脚本中,将其转换回可读字符串,它将防止任何潜在的 XSS 漏洞,并确保任何特殊字符,如空格、和号、问号等,都不会影响 Script2.php 的执行。这是正确的,还是我需要做的更多?
在 Script1.php 中:
echo('<TD><A HREF="Script2.php?reason=' . bin2hex($input['reason']) . '">Proceed</A></TD>');
在 Script2.php 中:
echo('<input type="text" name="reason">' . strlen($_REQUEST['reason'])?pack('H*', $_REQUEST['reason']):'<I>No reason specified</I>' . '</input>');