问题标签 [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 投票
1 回答
9412 浏览

php - 在传递给 ODBC 之前转义输入数据的正确方法

我非常习惯于使用 MySQL 和 mysql_real_escape_string(),但是我得到了一个使用 ODBC 的新 PHP 项目。

在 SQL 字符串中转义用户输入的正确方法是什么?

addlashes() 是否足够?

我想现在而不是以后得到这个!

0 投票
2 回答
305 浏览

php - 我还应该逃吗?$_GET 和 XSS、SQL 注入和其他 PHP 安全问题

如果我使用 $_GET 从 URL 字符串中检索数据并且没有在网页上显示该数据或对其执行任何 SQL 操作,我是否仍应考虑使用转义、正则表达式和其他安全代码?该字符串可以包含任何字符。

希望这是有道理的。

0 投票
2 回答
4165 浏览

php - 将 implode() 与 mysql_real_escape_string() 结合的 PHP 问题

如何正确编写同时内爆和 mysql_real_escape_string 的 MySQL 查询代码?

这是我拥有的代码,但它失败了:

谢谢

0 投票
2 回答
917 浏览

php - 为什么 mysql_real_escape_string() 不能正常工作?

在mysql_real_escape_string()的文档中它说:

...,考虑到连接的当前字符集,以便将其放在 mysql_query() 中是安全的

现在为什么它在这个例子中不能正常工作?

mysql_query("SET CHARACTER SET 'gbk'", $c)我们在调用之前更改了字符集mysql_real_escape_string,那么为什么这个函数不知道新的字符集呢?

0 投票
2 回答
217 浏览

mysql - 使用正则表达式自动添加 mysql_real_escape_string

我有一个 mysql 类,它有一个名为的方法query(),基本上是mysql_query(). 此方法接收查询作为参数,如下所示:

insert into table set field1 = 'value 1', field2 = 'value 2' 或者 select id from table where field1 = 'value 1', field2 like '%value 2%'

当然,这不是一个很好的做法,因为所有值都应该首先通过mysql_real_escape_string().

我想使用正则表达式来捕获将某些信息传递给方法的所有模式,例如粗体部分:

insert into table set field1 = '**value 1**', field2 = '**value 2**'.

问题是,如果我让 preg_replace 变得贪婪,它最终会抓住:

insert into table set field1 = '**value 1', field2 = 'value 2**'

如果它不贪婪,它会抓住:

insert into table set field1 = '**value **' 1', field2 = 'value 2'(其中filed1实际上是=“值'1”。

一个选项是将值放在分隔符之间,如下例所示,但这对我来说似乎不是最好的方法:

insert into table set field1 = {{value 1}}, field2 = {{value 2}} 然后捕获 "{{" 和 "}}" 之间的所有文本并将其替换为其mysql_real_escape_string()'ed 值。

有没有办法以更专业的方式做到这一点?

ps:抱歉代码中有**,我不知道如何在刻度内加粗

0 投票
2 回答
531 浏览

php - PHP 魔术行情问题

我以前从未在打开魔术引号的环境中编程过。现在我正在做一个项目。这就是我设置用户接受数据情况的方式:

通过该过滤,启用魔术引号后,我是否仍然可以进行 SQL 注入攻击?

我真的只关心会破坏我的查询的任何类型的 SQL 注入......其他白名单,htmlspecialchar() -ing 等在其他领域已经到位。

查看一些类似的 SO 问题,似乎建议改为检查魔术引号,如果数据已打开,则在数据上运行“stripslashes”,然后始终运行转义功能。不过,我有点担心这样做,因为站点中的所有现有代码都假定它处于打开状态。

谢谢!

0 投票
1 回答
537 浏览

flex3 - Flex & MySQL:转义以防止 SQL 注入

我在 Flex 3 项目中使用 Zend AMF 远程处理。如何确保我的 Flex 应用程序发送到我的 php 的参数不会导致 SQL 注入或其他安全问题。

如何使 $parameterArray 安全?它是一个字符串和数值数组。如何将 mysql_real_escape_string 与 $parameterArray 一起使用?我还需要使用 htmlspecialchars 吗?在这种情况下如何使用它?我还需要做些什么来确保它的安全吗?

PHP:

0 投票
1 回答
2626 浏览

php - mysql_real_escape_string() 会取消 stripslashes() 吗?

我让用户输入一些将存储在 sql 中的信息。当然,我想转义所有引号等..但我也不希望将这些东西输出到最终的 html 中。

我正在为所有 $_POST 变量运行此函数。它有效吗?

我担心转义字符串和stripslashes相互抵消?

0 投票
2 回答
11573 浏览

php - 将 mysql_real_escape_string 与 PDO 一起使用(不连接到 localhost 服务器)

所以我相当偏执并使用mysql_real_escape_string()PDO。我实际上不在 PDO 中使用准备好的语句,所以我必须清理输入。

在我自己的服务器上托管时,我会在本地机器上创建一个非特权用户,这样mysql_real_escape_string()就不会失败并清空我的变量(嘿,现在清理!)。我意识到这是一个非常失败的解决方案,因为如果数据库没有匹配的字符集,那么根本没有必要进行消毒,但它在过渡期间有效。

现在在我的新主机上,我无法为数据库创建一个无密码、无特权的用户......并且mysql_real_escape_string()由于本地计算机上没有 mysql 服务器而失败。我无法编辑 php.ini 来设置默认数据库的主机名/用户/密码。

我能做些什么?

在我写这篇文章时进行头脑风暴,我想知道 php 是否允许运行时更改配置......也许...... hrm。 编辑:嗯... ini_set()?:O

0 投票
4 回答
560 浏览

php - 何时使用 mysql_real_escape_string()

何时是使用 mysql_real_escape_string 的正确时间?

当我使用 isset(mysql_escape_string($_GET['param'])) 时,我应该使用它吗?

当我使用 $foo = mysql_real_escape_string($_GET['bar']); 时我应该使用它吗?

谢谢