2012-04-13 56 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