2012-03-06 25 views
0

在我和我的朋友的网站是与登录文本框的形式。如果登录不存在,则会出现错误
"Error occurred. 151SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected"
如果我输入无效的登录名+某些sql(例如"iu7' or '1=1'--"),它不会显示任何数据,也不会显示任何错误。
该表格是否安全?是否有可能输入有效的登录名+ sql以将登录名切换为密码?你怎么看呢?有什么办法从本网站获取一些机密数据?

回答

2

在提交查询之前,您应始终使用mysql_real_escape_string($_POST['...'])来跳过输入值。这样,你应该安全的任何字符串,他们把。英寸

我不认为这样的人会帮你注入其他网站,所以这就是我现在要说的。

2

这取决于您如何使用发布的数据构建S​​QL命令。如果您只是从值中构建一个字符串,那么您将面临SQL注入攻击的风险。

看看这篇文章:

http://php.net/manual/en/pdo.prepared-statements.php

它解释了如何构建在PHP中准备语句,这将防止SQL注入。