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

问题描述 投票:1回答:1

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

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

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

php forms refresh meta
1个回答
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;,这是正确的HTML编码。

© www.soinside.com 2019 - 2024. All rights reserved.