我想問一下當我使用$ _GET ['something']時如何提高安全性; ?
我的意思是,如何防止人們直接從地址欄執行這些「獲取」?因爲我有一個測試頁,您可以從中獲得XP,並從XP獲得等級。
它看起來像這樣:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
<label for="addxp"><font color="yellow">Add XP:</font></label> <input type="text" name="xpadd"><br>
<input type="submit">
</form>
$xpadd = $_GET['xpadd'];
mysql_query("UPDATE users SET xp=xp + '" . $_GET['xpadd'] . "' WHERE user_id='" . $_SESSION['user_id'] . "'") ;
它是工作,但是當我鍵入此到我的瀏覽器的地址欄:http://mywebsite.com/xp.php?xpadd=50它增加了50 xp下我的觀點。有人可以告訴我,我該如何預防?
使用nonces爲:http://stackoverflow.com/questions/4145531/how-to-create-and-use-nonces – Joren
此外,不要使用'mysql_'函數,他們已被棄用。改用'mysqli'或'PDO'。在插入到數據庫之前轉義值也是一個好主意。請參閱http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php – Joren
讓他們能夠添加XP是最少的擔心,你有一個** SQL注入**後門 - 左**寬**開 – AlexP