元刷新标签添加分号到 URL (;)
Meta refresh tag adds semicolons to URL (;)
我有一个 PHP/HTML 表单,当按下提交表单按钮时,它应该会更改数据库并将页面重定向到另一个 URL 以查看表单详细信息。下一页需要通过 GET 接收两个变量,以便从数据库加载信息。
提交表单后,我使用以下代码行重定向页面:
echo '<META HTTP-EQUIV="refresh" Content="0;URL=http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=' . $PostingID . '&UserID=' . $UserID . '"/>';
问题是当它重定向时会添加两个分号,如下所示:
http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=7;%20&UserID=33;
在结尾添加分号会阻止页面正确加载。我可以手动删除它并且它会起作用,但普通用户不知道这样做。
如何让元刷新不添加分号?
您应该清理 GET 变量以防止 XSS(跨站点脚本)攻击。如果两者都是整数,则可以强制执行。
echo '<META HTTP-EQUIV="refresh" Content="0;URL=http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=' . intval($PostingID) . '&UserID=' . intval($UserID) . '"/>';
请注意,我还将 & 更改为 &
,这是正确的 HTML 编码。
我有一个 PHP/HTML 表单,当按下提交表单按钮时,它应该会更改数据库并将页面重定向到另一个 URL 以查看表单详细信息。下一页需要通过 GET 接收两个变量,以便从数据库加载信息。
提交表单后,我使用以下代码行重定向页面:
echo '<META HTTP-EQUIV="refresh" Content="0;URL=http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=' . $PostingID . '&UserID=' . $UserID . '"/>';
问题是当它重定向时会添加两个分号,如下所示:
http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=7;%20&UserID=33;
在结尾添加分号会阻止页面正确加载。我可以手动删除它并且它会起作用,但普通用户不知道这样做。
如何让元刷新不添加分号?
您应该清理 GET 变量以防止 XSS(跨站点脚本)攻击。如果两者都是整数,则可以强制执行。
echo '<META HTTP-EQUIV="refresh" Content="0;URL=http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=' . intval($PostingID) . '&UserID=' . intval($UserID) . '"/>';
请注意,我还将 & 更改为 &
,这是正确的 HTML 编码。