【发布时间】:2015-09-22 12:16:39
【问题描述】:
很简单,我网站上的“texarea”就像发短信一样,它允许用户输入文本并将其发布到页面上。我刚刚发现它将文本视为某种代码,可能是 SQL。
当我输入“你好,我们都很好”时,“我们是”这个词中的撇号引起了一些混乱。
浏览器中显示的错误信息:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 're all set')' at line 1
以防万一您想知道,这里是 html:
<form action="comi.php" method="post">
<textarea maxlength="227" type="text" name="input" cols="45" rows="4"></textarea>
<input type="submit" value="POST" id="button" />
</form>
我认为可能与数据库有关,有人可以帮忙吗?
提前致谢:)
【问题讨论】:
-
对不起,第一行应该说:“很简单,我网站上的
-
我还是不明白,我以为有一个简单的解决方案
-
解决方法是不要在SQL语句中使用任何用户输入而不进行转义。这必须在服务器端完成,因为您不能信任客户端。见bobby-tables.com。问题不仅在于 SQL 语句,还在于来自用户的所有内容。我建议您在开始任何严肃的 Web 开发之前了解各种攻击,例如 XSS、CSRF、SQL 注入……否则您的服务器和客户端都处于危险之中。
-
啊,小希特勒认为这不是一个好问题。在我(和其他人一样)看来,它是可验证的,确实包含足够的信息,并且期望的行为是显而易见的......不要失败! :-)