我有一个从 3 个不同页面调用的函数。在每个页面中,我都会向一个div添加一个属性。
例如:
<div id="posts" page="home"></div>
<div id="posts" page="feed"></div>
<div id="posts" page="search"></div>
在Java脚本中,我获取page的值,然后将其传递给PHP文件,其中我有一个if
,elseif
和else
状态。
为了更安全,我认为如果在 AJAX 加载的 PHP 文件中获取调用脚本的 url 会很好,因为简单地使用 google 调试工具有人可以更改 attr。
<?php
if($page =='home' && $sourceUrl == 'the home url' )
{
// do this
}
elseif($page =='feed' && $sourceUrl == 'the feed url')
{
// do this
}
elseif($page =='search' && $sourceUrl == 'the search url')
{
// do this
}
else
{
exit();
}
?>
嗯,好吧,你可以使用 javascript 来获取当前页面地址并发送到你的 PHP 文件,你也可以使用 PHP,但这只会让你获得 PHP 脚本的地址。
无论如何,你用javascript这样做根本不安全,正确的方法是不要担心发送到服务器的内容,因为服务器端脚本验证来自用户的所有输入,而不是相反!
只需检查PHP脚本中的某些值,如果收到其他值,则终止Ajax调用,这是简单安全(至少在某种程度上)的解决方案。
为了避免XSS,你可以生成一个随机字符串,该字符串在每次从PHP加载页面时插入到HTML中,当然必须是随机的。每次 ajax 调用时都发送该字符串,以避免有人从其他地方向您的脚本发送 ajax 调用。