问题标签 [magic-quotes]
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.
php - PHP file() 在单引号中添加斜杠
我有一个运行 5.3.3 的 PHP 安装,当我使用以下代码时:
我所有的单引号都被转义了。为什么会发生这种情况。服务器上启用了魔术引号(由于某种原因,它超出了我的控制)但是我认为魔术引号仅适用于 GET POST COOKIE 和 REQUEST?我还有什么我在最新的 PHP 中缺少的东西吗?
有任何想法吗?
php - php特殊字符问题
我的脚本中的特殊字符有问题:
这是我到目前为止所拥有的:
如果$data
包含任何特殊字符,例如'
',那么我不会得到我需要的字符串块,而是只得到第一部分。一个更详细的例子:
该脚本将在 Chris as 之后读取 ''
并将$curlstrip[5]
具有不同的值。
希望已经足够清晰了。
乐。按照这个例子:
但
那是因为 ' 被读作
谢谢,
克里斯蒂安。
php - 在 PHP 版本 5.2.14 上使用 get_magic_quotes_gpc 或在 PHP 版本 6 上使用等效项
我们的网站使用 PHP 版本 5.2.14
最近我们的主持人可能改变了魔术引用的定义,我想出了建议的解决方案 [下面的代码]
- 这个解决方案适用于 PHP 5.2.14 版吗?
- 当我们升级到 PHP 版本 6 时我应该改变什么?
php - 在 SQL 中转义引号
根据 php.net 我应该使用 mysql_real_escape_string()并关闭魔术引号,因为它已被弃用。
所以我把它关掉了,我使用了mysql_real_escape_string(),但是像下面的代码那样使用它就足够了吗?
当我检查数据库中的数据时,它看起来与 $value so"It's Time"
和 not相同"It\'s Time"
。这是正常的吗?这不应该在引号前添加一个斜杠吗?
php - 从 mysql_query 切换到 PDO 的问题
我正在从传统mysql_query()
的参数化查询切换到 PDO,以利用它的安全优势,我有几个问题。首先,就magic_quotes 而言,有什么需要做的吗?这个网络应用程序将安装在不同配置的系统上,有些会(不幸地)打开它们,而另一些会关闭。以前,我正在执行整个 if 语句,以了解addslashes()
何时关闭输入数据......需要对以下 PDO 查询进行哪些操作:
另外,到底有必要关闭数据库处理程序吗?不这样做有什么害处?对于将安装在许多不同服务器设置上的 CMS,PDO 是一个不错的选择吗?PDO 是否足够普遍,可以在大多数服务器上启用?
提前致谢!
php - MySQL PHPMyAdmin 本地主机接受魔术引号
我在 Ubuntu 上的 localhost 有一个小问题,无法接受从 PHP 文件到 MySQL 数据库的带有撇号的数据。
例子:
我的本地主机数据库不会接受它,它也不会接受它附带的任何东西。
例子:
只要没有张贴撇号,我的本地主机数据库和其他所有内容都会接受。
我怎样才能让我的本地机器像我的在线服务器一样接受撇号以及发布到数据库的数据?这将更能确保我的代码在开发时工作。
我想让我的本地主机像我的服务器一样接受数据而不使用 mysql_real_escape_string()。
php - 数据库的特殊字符问题
我正在尝试使用 JavaScript 将特殊字符添加到数据库中,encodeURIComponent
但它可以在 localhost 中工作,并且在服务器中添加'
额外/
的字符也会添加到'
.
如何防止这种情况?
这是我到目前为止所拥有的:
question_text
是字段 ID。
admin
是我的控制器,然后进行建模。如果我输入特殊字符+'&
,所有这些字符都会正确输入到本地数据库中。但是在服务器端,像输入的字符,但在 .前面附加'
了一个额外的字符。/
'
php - PHP 魔术行情问题
我以前从未在打开魔术引号的环境中编程过。现在我正在做一个项目。这就是我设置用户接受数据情况的方式:
通过该过滤,启用魔术引号后,我是否仍然可以进行 SQL 注入攻击?
我真的只关心会破坏我的查询的任何类型的 SQL 注入......其他白名单,htmlspecialchar() -ing 等在其他领域已经到位。
查看一些类似的 SO 问题,似乎建议改为检查魔术引号,如果数据已打开,则在数据上运行“stripslashes”,然后始终运行转义功能。不过,我有点担心这样做,因为站点中的所有现有代码都假定它处于打开状态。
谢谢!
php - 启用魔术引号时的 SQL 注入
今天早些时候,我询问了引号的自动转义并了解了魔术引号。该线程位于PHP 中是否自动转义了单引号?那么清洁的必要性是什么?.
我们达成共识,魔术引号是不够的,我们应该始终验证和清理用户输入以及使用准备好的查询。
然而,这导致了这个问题,在启用了魔术引号的服务器上,什么样的 sql 注入会绕过魔术引号施加的安全措施?为什么魔术报价不安全?
为了让我相信魔术引号并不安全,我希望看到一个真实世界的注入示例,它可以绕过这些措施。我已经使用以下代码在本地服务器上构建了一个测试设置:
其中 query() 是执行查询所需的常用代码。从来没有清洁过。但是,魔术报价已启用。
任何可以绕过此设置的魔术引号的注入示例?
干杯,
埃里克
php - PHP 5.3 自动从表单字符串中转义 $_GET/$_POST?
我的服务器管理员最近升级到 PHP 5.3,我遇到了一个奇怪的“错误”(或功能,因为 PHP 人有它)。出于明显的安全原因,我的大部分字符串形式数据都在我mysql_real_escape_string
身边,但现在看来这种转义已经由 PHP 完成了。
这输出,如果我输入例如escape 'this test'
,escape \'this test\'
。如果我使用POST
而不是GET
.
它是直接与 5.3 升级相关,还是我的管理员在 php.ini 文件中触发了一些自动切换?
另外,我应该保持原样(如果它确实是一个很好的防故障机制,可以正确捕获所有 get 和 post 变量),还是应该禁用它(如果可能的话!)并返回mysql_real_escape_string
?我的直觉告诉我方法 2 是最好的,但方法 1 会有点自动。:)
编辑:实际上,我需要禁用它。有时我会收集表单数据并将其重新发送到客户端表单以防出现问题(即缺少字段),因此我不希望他/她突然出现斜线。