元刷新标记将分号添加到URL(;)

时间:2015-04-26 15:52:06

标签: php forms refresh meta

我有一个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;

分号添加结尾可防止页面正确加载。我可以手动删除它,它会工作,但普通用户不知道这样做。

如何让元刷新不添加分号?

1 个答案:

答案 0 :(得分:0)

您应该清理GET变量以防止XSS(跨站点脚本)攻击。如果两者都是整数,则可以强制执行。

echo '<META HTTP-EQUIV="refresh" Content="0;URL=http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=' . intval($PostingID) . '&amp;UserID=' . intval($UserID) . '"/>';

注意我也改变了&amp;到&amp;,这是正确的HTML编码。