【发布时间】:2011-08-09 13:04:50
【问题描述】:
我是 PHP / MySQL 的新手,我只是想通过以下 tut 来熟悉它:
http://www.allsyntax.com/tutorials/PHP/24/Building-a-Comments-Script/2.php
...这是脚本开头的摘录:
$inf = "SELECT * FROM `comments` WHERE page = '".stripslashes($_SERVER['REQUEST_URI'])."' ORDER BY time ASC";
$info = mysql_query($inf);
f(!$info) die(mysql_error());
我明白这是在做什么,但我想知道为什么
stripslashes($_SERVER['REQUEST_URI'])
两边都有点?
【问题讨论】:
-
不要,我再说一遍,不要按照那个教程。它教给你一些非常糟糕的做法。只是您在上面粘贴的那段代码是一个安全漏洞案例。
-
感谢您的建议,但我只是按照它来习惯 PHP / MySQL - 我会考虑在以后编写更安全的代码。
-
不仅缺乏安全性。作者希望您将日期和时间作为文本存储在 MySQL 中。在 StackOverflow 上有很多问题,来自那些这样做但现在正在受苦的人。还有一个代码风格问题,总的来说,所提出的方法远非一个好的方法(更不用说最好了)