如何获取从中调用脚本的页面名称

How to get the page name from which the script is called

本文关键字:脚本 调用 何获取 获取      更新时间:2023-09-26

我有一个从 3 个不同页面调用的函数。在每个页面中,我都会向一个div添加一个属性。

例如:

<div id="posts" page="home"></div>
<div id="posts" page="feed"></div>
<div id="posts" page="search"></div>

在Java脚本中,我获取page的值,然后将其传递给PHP文件,其中我有一个ifelseifelse状态。

为了更安全,我认为如果在 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 调用。