在任何人對安全問題發表評論之前,請不要打擾。鏈接點擊驗證和JavaScript中的PHP函數?
比方說,我有一個index.php
。
在此頁面上有各種指向'home.php'的鏈接,但它們都具有不同的數據存儲在href
屬性中。例如:
鏈接1:'?home.php數據= 1個&國家=英國
鏈接2: '?home.php數據= 95 &國家=美國'
用戶可以很容易地只是輸入www.website.com/home.php?data=*&country=*
並填入URL中的數據以符合他們的喜好。
我在想如果我有一個函數,當點擊這些鏈接之一時運行,這會在到達目的地之前在URL上添加一個值。 E.g:
原文鏈接:www.website.com/home.php?data=1&country=uk
被點擊鏈接:www.website.com/home.php?data=1&country=uk&verify=a8c9gj113
我不能工作是如何點擊鏈接時,實際去到目的地之前更改HTML的href
數據。
我的代碼如下(HTML是在一個while循環從數據庫中提取數據)
<a href='home.php?data=". $results['id'] ."&country=". $results['country'] .' onclick='return verify();'>
功能:
function verify()
{
document.getElementById("verify").href="";
return true;
}
所以在我要去的地方的功能href值原始網址(home.php?data=". $results['id'] ."&country=". $results['country'] .
)加上額外的值。我怎樣才能做到這一點?
在當你從一個變量添加值或者等你只是簡單地結束與報價回聲一個PHP回聲,然後加點,如下圖所示:
echo "I am the". $whatami ."person in the world";
是否有這樣的JavaScript的東西嗎?當我將這個PHP URL粘貼到.href=""
的JavaScript函數中時,它只會失敗,因爲我正在關閉引號。
我希望人們明白我在說什麼。
如果有更好的方法來做到這一點,請告訴我。
退房:http://stackoverflow.com/questions/4145531/how-to-create-and-use-nonces可能是你可以從那裏 –
如果你擔心用戶會改變主意拿輸入,然後只給他們他們被允許*改變的輸入(並加載/計算下一頁中的其餘部分)。例如,'home.php?country = uk',然後在home.php中,通過國家代碼加載數據庫中的數據。 – Piskvor
另外,這本質上是一個安全問題; *不提及安全性的唯一方法是根本不回答。換句話說,是什麼阻止我提出開發人員工具(截至2016年,直接構建到所有主流瀏覽器中),更改HREF,然後*然後*調用verify()以更改屬性?沒有什麼能夠阻止這種情況,這使得JS端驗證僅對最複雜的攻擊者有用。 – Piskvor