我想问一下当我使用$ _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