Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中去除标签或mysql\u real\u escape\u字符串或添加\u magic\u引号_Php_Security - Fatal编程技术网

在php中去除标签或mysql\u real\u escape\u字符串或添加\u magic\u引号

在php中去除标签或mysql\u real\u escape\u字符串或添加\u magic\u引号,php,security,Php,Security,我最近读了一些关于php安全性的文章,感到头晕目眩,请解释清楚 我知道我应该使用strip_tags()或htmlentities()进行XSS攻击。但是如果我需要一些where-html标记,就像博客文章一样,我应该怎么做呢 但是我应该在哪里使用mysql\u real\u escape\u string()和add\u magic\u quotes()? 这些是一样的吗 另一个问题是,我应该为每个SQL查询使用mysql\u real\u escape\u string()吗?(插入,更新,

我最近读了一些关于php安全性的文章,感到头晕目眩,请解释清楚

我知道我应该使用
strip_tags()
htmlentities()
进行XSS攻击。但是如果我需要一些where-html标记,就像博客文章一样,我应该怎么做呢

但是我应该在哪里使用mysql\u real\u escape\u string()和
add\u magic\u quotes()
? 这些是一样的吗

另一个问题是,我应该为每个SQL查询使用mysql\u real\u escape\u string()吗?(
插入
更新
选择
删除
,等等)?此函数是否会对我的数据产生不良影响(例如,在带有html标记或
)的博客文章上)

我知道我应该使用
strip_tags()
htmlentities()
进行XSS攻击。但是如果我需要一些where-html标记,就像博客文章一样,我应该怎么做呢

如果您不信任用户,则解析HTML,然后将文档序列化回HTML

但是我应该在哪里使用mysql\u real\u escape\u string()和添加\u magic\u quotes()?这些是一样的吗

它们不一样,一般来说,你应该避免它们

另一个问题是,我应该为每个SQL查询使用mysql\u real\u escape\u string()吗

在将所有用户输入传递给dabtas之前,应先转义所有用户输入

我知道我应该使用
strip_tags()
htmlentities()
进行XSS攻击。但是如果我需要一些where-html标记,就像博客文章一样,我应该怎么做呢

如果您不信任用户,则解析HTML,然后将文档序列化回HTML

但是我应该在哪里使用mysql\u real\u escape\u string()和添加\u magic\u quotes()?这些是一样的吗

它们不一样,一般来说,你应该避免它们

另一个问题是,我应该为每个SQL查询使用mysql\u real\u escape\u string()吗


在将所有用户输入传递给dabtas之前,应先转义所有用户输入

忘掉那些神奇的引语吧。自动转义用户输入中的某些控制字符是一种懒惰的方式。即将筛选/清理用户输入,您将发现原因

此功能是否会对我的数据产生不良影响(例如,在博客上) 有html标记或“,”)的帖子

您不应该有任何问题,因为数据没有用额外的斜杠存储在数据库中。如果是,则很有可能magic_quotes已启用,需要关闭

我应该为每个SQL查询使用mysql\u real\u escape\u string()吗


在使用用户输入进行查询之前,需要对其进行过滤/消毒。使用该函数或准备好的语句。

忘记神奇的引号。自动转义用户输入中的某些控制字符是一种懒惰的方式。即将筛选/清理用户输入,您将发现原因

此功能是否会对我的数据产生不良影响(例如,在博客上) 有html标记或“,”)的帖子

您不应该有任何问题,因为数据没有用额外的斜杠存储在数据库中。如果是,则很有可能magic_quotes已启用,需要关闭

我应该为每个SQL查询使用mysql\u real\u escape\u string()吗


在使用用户输入进行查询之前,需要对其进行过滤/消毒。使用该函数或准备好的语句。

如果您需要在博客文章中允许HTML,您应该将标记和属性列为白名单,但您不应该自己尝试。相反,使用HTMLPurifier。在存储到数据库之前使用if,因为它很重,速度慢,但非常安全


根本不应该使用魔法引号。曾经mysql\u real\u escape\u string()应用于查询中提供的每个参数。这就是防止SQL注入所需要的一切。当然,确保连接需要您实际发送的字符编码是一个先决条件。

如果您需要在博客文章中允许HTML,您应该将标记和属性列为白名单,但您不应该自己尝试。相反,使用HTMLPurifier。在存储到数据库之前使用if,因为它很重,速度慢,但非常安全


根本不应该使用魔法引号。曾经mysql\u real\u escape\u string()应用于查询中提供的每个参数。这就是防止SQL注入所需要的一切。当然,确保连接期望您实际发送的字符编码是一个先决条件。

通用卫生功能的想法是一个错误的概念

每个目的都有一种正确的卫生方法。在字符串上运行一个通用的方法通常会破坏它——为SQL查询转义一段HTML代码会破坏它以在网页中使用,反之亦然。在使用数据之前,应立即应用卫生设施:

mysql_real_escape_string() for functional mysql_* calls (or parametrized queries)

htmlspecialchars() for safe HTML output

preg_quote() for use in a regular expression

escapeshellarg() / escapeshellcmd() for use in an external command

etc. etc.
使用“一刀切”的卫生功能就像在一棵植物上使用五种剧毒杀虫剂,根据定义,这种杀虫剂只能含有一种虫子——结果却发现你的植物感染了第六种虫子,而所有的杀虫剂都不起作用


始终使用正确的方法,最好是在将数据传递给函数之前直接使用。除非需要,否则不要混合使用方法。

通用卫生功能的概念是一个不完整的概念

每个目的都有一种正确的卫生方法。在字符串上运行一个通用的方法通常会破坏它——为SQL查询转义一段HTML代码会破坏它以在网页中使用,反之亦然。在使用数据之前,应立即应用卫生设施:

mysql_real_escape_string() for functional mysql_* calls (or parametrized queries)

htmlspecialchars() for safe HTML output

preg_quote() for use in a regular expression

escapeshellarg() / escapeshellcmd() for use in an external command

etc. etc.
使用“一刀切”的卫生功能就像在一棵植物上使用五种剧毒杀虫剂,根据定义,这种杀虫剂只能含有一种虫子——结果却发现你的植物感染了第六种虫子,而所有的杀虫剂都不起作用

在将数据传递给func之前,请始终使用正确的方法,最好是直接使用