2012-04-13 59 views
0

我有一个从3个不同页面调用的函数。在每个页面中,我将一个attr添加到一个div。如何获取从中调用脚本的页面名称

例如:

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

在Java脚本我再拿到页的值,然后我把它传递给中,我有一个ifelseifelse statemants PHP文件。

为了更安全起见,我认为如果在PHP文件中加载AJAX以获取从中调用脚本的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(); 
    } 
?> 
+0

你的问题不是很清楚。你能画一幅你想要做的图像吗? – hakre 2012-04-13 13:17:41

回答

0

嗯,好,你可以使用JavaScript来获得当前页面ADRESS,发送给你的PHP文件,你也可以使用PHP,但只会让你的PHP脚本的ADRESS。

无论如何,你用javascript做这件事一点都不安全,正确的做法是不用担心发送给服务器的内容,因为服务器端脚本验证来自用户的所有输入,而不是另一个绕过!

只需检查PHP脚本中的某些值,如果收到其他内容,则终止Ajax调用,这是简单且安全(至少有点)的解决方案。

为避免XSS,您可以生成一个随机字符串,该字符串在PHP中每次页面加载时都会插入到HTML中,并且当然必须是随机的。用每个ajax调用发送该字符串以避免有人从其他地方向您的脚本发送ajax调用。

+0

简单这是显示更多按钮,只有注册用户可以点击它 – Ben 2012-04-13 13:05:18

+0

如果您使用'page =“something”'数据来检查哪些页面被查看,并且数据未被插入到数据库中或用于任何可以插入恶意代码的地方,这并不是真正的问题。作为旁注,使用数据属性通常是一个好主意,即'data-page =“something” – adeneo 2012-04-13 13:12:18

+0

page =“something”和data-page =“something”之间的区别是什么 – Ben 2012-04-13 13:18:53

相关问题