If I only run a SELECT query, should I worry about sql injection? My site has only a few input fields, and all they do is look up information. I never delete, update, etc...
问问题
119 次
4 回答
2
您尝试执行哪种查询并不重要。SQL 注入可以结束您的查询并启动另一个查询,这可能是 DELETE、UPDATE 或 INSERT。这是Little Bobby Tables的教训
于 2013-06-18T21:17:25.443 回答
1
是的,你必须担心。您在 PHP 中执行什么查询或使用任何脚本都没有关系。一个邪恶的用户可以提交类似的东西"; DROP DATABASE
,你会为此感到抱歉。
于 2013-06-18T21:17:02.713 回答
1
是的你应该。SQL 注入与原始查询的内容无关。它可以在您的查询中注入任何子句的任何命令。
在 PHP 上使您的站点/系统/项目受到保护非常简单。
看看这个官方文档,看看这个技术的例子,在这里,如何避免它,使用mysql_real_escape_string
.
更新:我曾经' or 1=1 or ''='
在登录页面的用户名和密码字段上使用过它。它会产生这样的查询,select * from user where username = '' or 1=1 or ''='' and password = '' or 1=1 or ''=''
并可能返回一条记录。
请参阅此示例以了解其工作原理。
于 2013-06-18T21:18:20.553 回答
-1
如果您要SELECT
基于用户的输入,那么您必须担心它,因为用户可以在输入字段上放置任何内容。
于 2013-06-18T21:15:20.103 回答