问题标签 [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.
mysql - mysql_real_escape_string(); 不会“破坏”哪些 SQL 注入方法?
mysql_real_escape_string();
是否存在仅使用utf8 编码无法保护的 SQL 注入方法列表?
对于整数,我使用intval();
的是足够安全吗?
对于那些认为我想获得“教程”来破解任何人的人:不,我不会。我只是想知道如何让我的应用程序更安全,我想知道它们是否 99% 能够免受黑客攻击
php - Mysql 或 PHP 没有正确转换引号
我有一个文本区域,用户可以在其中输入一些信息。一些用户在他们的信息中输入单引号和双引号,我最终在页面中看到的是â��和所有类型的奇怪字符,其中单引号/双引号应该是。我只是使用函数 mysqli_real_escape_string() 和 trim() 来存储信息和 htmleneties() 在 php 中显示它们。
在我的数据库中,我已经看到了 â�� 字符,那么为什么单/双引号是属性存储的?谢谢!
php - mysql_real_escape_string() 还需要 md5() 吗?
我只是在浏览一些代码并确保所有用户输入都通过 mysql_real_escape_string() 运行以防止 sql 注入。对于通过 PHP 的 md5() 函数运行的密码输入,还需要 mysql_real_escape_string(0 吗?看起来编码过程将摆脱潜在的注入攻击。
sql - 删除所有非数字字符是否有效地转义数据?
在写入 MYSQL dB 之前,我使用此函数从字段中删除所有非数字:
这是否有效地转义输入数据以防止 SQL 注入?我可以将此函数包装在 中mysql_real_escape_string
,但认为这可能是多余的。
php - mysql_real_escape_string 扭曲用户输入 - 如何修复
我有来自用户的所有输入(最终在 mysql 表中)通过mysql_real_escape_string()
每个 php.net 和大多数论坛用户。老实说,我不知道它在内部做什么。
我所知道的是,在我的 xampp light 安装上运行它不会影响用户输入,但是当我上传到我的生产 Linux 服务器时,只要用户使用撇号,它就会在用户输入中添加一个 '\' 这样It's
变成It\'s
.
解决方法是什么?
php - mysql_real_escape_string 未与给定的正则表达式一起使用
我正在使用 dataHandler 库来处理我所有的数据库插入/更新等。该库具有以下功能:
这些函数然后用于使用 sprintf 构建查询,如下所示:
$params
是一个关联数组: array("db_field_name"=>$value, "db_field_name2"=>$value2, etc.)
当我想要更新或插入以“)”结尾的字符串时,我现在遇到了问题,因为 parseParams 函数没有将这些值放在引号中。
我的问题是:为什么这个库不会在以右括号结尾的字符串上调用 prepareValue?调用mysql_real_escape_string()
这个值会导致任何问题吗?我可以轻松地修改库,但我假设作者以这种方式处理这个特定的正则表达式是有原因的。我就是想不通这是什么原因!在我理解这里的原因之前,我很犹豫是否要进行任何修改。
谢谢你的帮助!
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
php - 另一个stripslashes问题
我没有找到真正的解决方案。和其他许多人一样,我现在使用 jquery wysiwyg 编辑器并将输出保存在 mysql 中。当我重新加载到编辑器并再次保存时,就会出现问题。每次按提交时,反斜杠和“标记都会增加。当然,在写入数据库之前,我会执行mysql_real_escape_string()
.
我递归地使用strpslashes,但它不起作用。
有人有想法吗?谢谢
php - 在 mysql_real_escape_string 之后,在 Twitter 中出现的撇号带有前面的反斜杠
在下面的代码中,第二行发布$comment
到 Twitter。
当$comment
下面有撇号时,它们在推文中以反斜杠开头。如何摆脱 Twitter 中的反斜杠?
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 服务