首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql注入保护

sql注入保护
EN

Stack Overflow用户
提问于 2012-08-02 20:54:28
回答 2查看 151关注 0票数 4

可能重复: 防止PHP中SQL注入的最佳方法

这些代码是否对sql注入有足够的保护?

代码语言:javascript
复制
if(isset($_POST['Submit']))
{
$user = mysql_real_escape_string($_POST["user"]);
$pass = mysql_real_escape_string($_POST["pass"]);
$confirm_key=md5(uniqid(rand()));

$query = mysql_query("INSERT INTO members 
(user, pass, mail, confirm_key, country, city, www, credo)
VALUES  ('$user','$pass','$_POST[mail]','$confirm_key','$_POST[country]','$_POST[city]','$_POST[www]','$_POST[credo]')")
or die ("Error during INSERT INTO members:    " . mysql_error());
exit();
}

这是正确的方式,必须是每个投入(如国家,城市.)受到保护吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-02 20:57:45

不对新应用程序使用 mysql_query。您应该使用mysqli或PDO来使用占位符进行转义。您可以使用许多例子

通常,您的SQL应该如下所示:

代码语言:javascript
复制
INSERT INTO `table` (column) VALUES (?)

不应该让看起来像:

代码语言:javascript
复制
INSERT INTO `table` (column) VALUES('$dangerous_user_content')

如果正确使用占位符,几乎不可能创建SQL注入孔。

票数 5
EN

Stack Overflow用户

发布于 2012-08-02 21:01:41

http://php.net/manual/en/function.mysql-real-escape-string.php

连php文档都说不要使用mysql_real_escape_string

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11785609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档