- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我听到有人说(关于 C#/SQL Server,但也关于 PHP/MySql):不要手动转义字符串 - 使用存储过程代替。
好吧,我可以接受这个建议,但是为什么呢?很多人说(包括SO上)mysql_real_escape_string()
就够了,mysql_real_escape_string()
很好,mysql_real_escape_string()
是第一种保护方式.
为什么?是否存在 mysql_real_escape_string()
会失败的情况?至少一个...我不需要很多 :)
最佳答案
当 mysql_real_escape_string 失败时:
$sql = "SELECT * FROM users WHERE id=" + mysql_real_escape_string($_GET['id']);
如果 $_GET['user_id']
设置为 1 OR 1=1,则没有特殊字符,也不会被过滤。
结果:返回所有行。
情况变得更糟。这个怎么样...如果 $_GET['user_id']
设置为 1 OR is_admin = 1 会怎么样?
该函数仅设计为在单引号内使用。
关于php - 为什么 mysql_real_escape_string() 不应该避免任何 SQL 注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8560864/
原帖: 我的脚本不工作(它不记录数据)。它在我添加 mysql_real_escape_string 之前工作,所以我想知道我是否没有正确实现它: $array = json_decode($down
如果我在将变量放入 mysql 表之前使用了 mysql_real_escape_string,我是否需要对从表中取出的任何变量再次使用它? 最佳答案 如果要将变量放回数据库,则需要再次使用它。否则,
我正在开发一个使用 mysql.h 库的 C 程序。这是代码: int newproduct(){ char *name;//nombre del prducto char *de
如果我输入 ' 在我的搜索栏中,我收到一个 mysql 错误,因为“刺痛”没有被转义——它认为。 但是我之所以无法转义,是因为我认为它目前不是一个字符串。 搜索框使用 ajax 动态生成搜索结果,就像
我收到 警告:mysql_real_escape_string() [function.mysql-real-escape-string]:用户 'username'@'localhost' 的访问被
我有一个 PHP 脚本,它在从用户填写的表单中获取数据后将一条记录插入到数据库中。我在我的本地机器(WAMP 服务器)上开发并在我的 PHP 脚本中包含以下代码: $name = mysql_real
示例代码: $email = "" . $_POST['email']; $con = mysql_connect("localhost","user","pass") or die('Could
什么时候使用 mysql_real_escape_string 是正确的时间? 当我使用 isset(mysql_escape_string($_GET['param'])) 时是否应该使用它, 当我
我的每个 php 页面的顶部都有以下代码: foreach ($_POST as $key => $value) { if (!is_array($value)) {
我使用 imap_mail (php) 从我的邮件服务器收集电子邮件,在使用 mysql_real_escape_string 后分解结果并将其保存到数据库。 如果我从数据库检索后将其显示在文本区域中
我正在创建一个magento模块,并且在 Controller 中我试图生成一个查询。例如:"INSERT INTO ". $resource->getTableName('mymod/mymodta
我的查询是这样的, ... ON (`Test`.`id` = `Form`.`close_`%)... 它抛出错误,提示Syntax error or access violation: 1064。
这个问题已经有答案了: How to change mysql to mysqli? (12 个回答) 已关闭 2 年前。 由于 mysql_real_escape_string 现已弃用,我必须更改
我们知道,在php脚本中的mysql上执行之前,所有用户输入都必须通过mysql_real_escape_string()函数进行转义。并且知道此函数在用户输入中的任何 ' 或 " 字符之前插入\。假
我粘贴谷歌地图代码 View Larger Map 在文本区域中并使用mysql_real_escape_string(trim($_POST'map'])) 但是从 mysql 表中获取数据时
我正在尝试清理进入数据库的字符串。但使用下面的代码,我没有得到数据库的更新。 第一页以输入形式发布此内容: $note="Here is some example text"; 接收页面: $note
好的。所以我做了一个表格。如果我在从表单中检索到的变量 $usrname (是的,拼写正确)上输入 mysql_real_escape_string ,它会返回我的另一个变量 $verify 为 fa
我不明白为什么 mysql_real_escape_string 需要转义换行符和回车符: \n 和 \r 使用 \n 和 \r 的 SQL 中可能存在哪些安全漏洞? UPDATE tbl SET f
我正在将我的应用程序从 Mysql 扩展移至 PHP PDO。我面临一个奇怪的问题。在我的开发环境中,我的数据库服务器 [MySQL] 和 Web 服务器都位于单个系统中,而在测试环境中,Web 和数
因此,即使使用 mysql_real_escape_string 清理数据,您也可以使用 %27 进行 SQL 注入(inject) %27) SQL INJECTION HERE %2F* 怎么办?
我是一名优秀的程序员,十分优秀!