问题标签 [mysql-real-escape-string]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
798 浏览

mysql - mysql_real_escape_string(); 不会“破坏”哪些 SQL 注入方法?

mysql_real_escape_string();是否存在仅使用utf8 编码无法保护的 SQL 注入方法列表?

对于整数,我使用intval(); 的是足够安全吗?

对于那些认为我想获得“教程”来破解任何人的人:不,我不会。我只是想知道如何让我的应用程序更安全,我想知道它们是否 99% 能够免受黑客攻击

0 投票
2 回答
955 浏览

php - Mysql 或 PHP 没有正确转换引号

我有一个文本区域,用户可以在其中输入一些信息。一些用户在他们的信息中输入单引号和双引号,我最终在页面中看到的是â��和所有类型的奇怪字符,其中单引号/双引号应该是。我只是使用函数 mysqli_real_escape_string() 和 trim() 来存储信息和 htmleneties() 在 php 中显示它们。

在我的数据库中,我已经看到了 â�� 字符,那么为什么单/双引号是属性存储的?谢谢!

0 投票
2 回答
2879 浏览

php - mysql_real_escape_string() 还需要 md5() 吗?

我只是在浏览一些代码并确保所有用户输入都通过 mysql_real_escape_string() 运行以防止 sql 注入。对于通过 PHP 的 md5() 函数运行的密码输入,还需要 mysql_real_escape_string(0 吗?看起来编码过程将摆脱潜在的注入攻击。

0 投票
2 回答
118 浏览

sql - 删除所有非数字字符是否有效地转义数据?

在写入 MYSQL dB 之前,我使用此函数从字段中删除所有非数字:

这是否有效地转义输入数据以防止 SQL 注入?我可以将此函数包装在 中mysql_real_escape_string,但认为这可能是多余的。

0 投票
1 回答
116 浏览

php - mysql_real_escape_string 扭曲用户输入 - 如何修复

我有来自用户的所有输入(最终在 mysql 表中)通过mysql_real_escape_string()每个 php.net 和大多数论坛用户。老实说,我不知道它在内部做什么。

我所知道的是,在我的 xampp light 安装上运行它不会影响用户输入,但是当我上传到我的生产 Linux 服务器时,只要用户使用撇号,它就会在用户输入中添加一个 '\' 这样It's变成It\'s.

解决方法是什么?

0 投票
1 回答
197 浏览

php - mysql_real_escape_string 未与给定的正则表达式一起使用

我正在使用 dataHandler 库来处理我所有的数据库插入/更新等。该库具有以下功能:

这些函数然后用于使用 sprintf 构建查询,如下所示:

$params是一个关联数组: array("db_field_name"=>$value, "db_field_name2"=>$value2, etc.)

当我想要更新或插入以“)”结尾的字符串时,我现在遇到了问题,因为 parseParams 函数没有将这些值放在引号中。

我的问题是:为什么这个库不会在以右括号结尾的字符串上调用 prepareValue?调用mysql_real_escape_string()这个值会导致任何问题吗?我可以轻松地修改库,但我假设作者以这种方式处理这个特定的正则表达式是有原因的。我就是想不通这是什么原因!在我理解这里的原因之前,我很犹豫是否要进行任何修改。

谢谢你的帮助!

0 投票
1 回答
277 浏览

php - \r\n \" 打印出来

我已经开始使用 ADOdb 和参数化查询(例如 $db->Execute("SELECT FROM users WHERE user_name=?;",array($get->id);) 来防止 SQL 注入。我已经读过这是假设在 MySQL 注入方面保护你,但显然不是 XSS。虽然可能是这种情况,但我仍然对此持怀疑态度。

尽管如此,我总是在我的包装代码(kernel.php)的开头使用shot弹枪方法过滤我的环境变量以确保安全。我注意到使用 ADOdb 和以下函数的组合会产生浏览器可见的回车符 (\r\n \" \'),这是我不想要的(尽管我确实想存储该信息!)。我也不想在显示之前过滤我的输出,因为我已经正确过滤了我的输入(除了 BBcode 和那种东西)。下面你会找到我所指的功能。

虽然通常我已将此问题隔离到 sanitize 函数的 mysql_real_escape_string 部分,但请注意我的服务器正在运行 PHP 5.2+,并且当我使用自己的简化数据库抽象类时不存在此问题。此外,该站点主要是在我自己的代码上运行的,而不是建立在某些预先存在的 CMS 的脚手架上)。因此,考虑到这些因素,我唯一的猜测是发生了一些双重转义。但是,当我查看 adodb.inc.php 文件时,我注意到 $rs->FetchNextObj() 没有使用 mysql_real_escape_string。执行此操作的唯一函数似乎是 qstr,它封装了整个字符串。这让我担心依赖参数化查询可能还不够,但我不知道!

非常感谢您的帮助!如果您需要任何进一步的说明,请告诉我。

更新反斜杠仍然出现在“和'前面,是的,我删除了额外的mysql_real_escape_string ...现在我只能认为这可能是get_quotes_gpc,或者ADOdb添加它们...

~elix

0 投票
1 回答
301 浏览

php - 另一个stripslashes问题

我没有找到真正的解决方案。和其他许多人一样,我现在使用 jquery wysiwyg 编辑器并将输出保存在 mysql 中。当我重新加载到编辑器并再次保存时,就会出现问题。每次按提交时,反斜杠和“标记都会增加。当然,在写入数据库之前,我会执行mysql_real_escape_string().

我递归地使用strpslashes,但它不起作用。

有人有想法吗?谢谢

0 投票
2 回答
299 浏览

php - 在 mysql_real_escape_string 之后,在 Twitter 中出现的撇号带有前面的反斜杠

在下面的代码中,第二行发布$comment到 Twitter。

$comment下面有撇号时,它们在推文中以反斜杠开头。如何摆脱 Twitter 中的反斜杠?

0 投票
1 回答
1313 浏览

php - 将新行从 db1.table1 插入到 db2.table1

我有两个具有精确表结构(table1)的数据库($db1,$db2)。$db2.table1 有我想插入到 $db1.table1 的新行(即,如果 $db2 是新的而 $db1 是旧的,我想用 $db2 中的新条目更新 $db1)。
我想出了以下 php 代码,它应该可以正常工作,但我担心列 id 中的特殊字符以及要插入其中的值。
这是代码:

我不知道列名中是否会有任何特殊字符。我应该用反引号将它们括起来吗?
如果是,那么我应该使用解析它们mysql_real_escape_srting()吗?
价值观呢?我应该用引号将它们括起来'value'吗?如果要插入的值是一个数字怎么办?如果它的日期/时间怎么办?
有没有一种方法可以绕过从旧数据库中获取数据到 PHP 变量中并将其插入回数据库(因此上述问题变得无关紧要)?

注意:即使有两个连接,我也有相同的 SQL 服务器为两个 $db 服务