Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.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 什么构成';用户输入';在处理XSS攻击预防时?_Php_Security_Xss - Fatal编程技术网

Php 什么构成';用户输入';在处理XSS攻击预防时?

Php 什么构成';用户输入';在处理XSS攻击预防时?,php,security,xss,Php,Security,Xss,我希望保护我的代码免受XSS攻击,但我一直在阅读的所有示例都涉及直接用户输入验证(例如在联系人表单或登录中) 我有点困惑,如果没有直接输入的方法,我是否需要保护我的代码(即,我的网站只是从数据库中读取而不是写入)?我仍然认为我需要这样做,因为我将我的数据库归类为一个外部源,而变量中的数据仍然来自其他地方 我是否认为任何读取的数据仍然构成用户输入,并应进行相应处理?此外,如果我随后添加了一个联系人表单,那么我是否需要验证/清理/转义每个页面中从数据库中提取的每一条信息,或者只在表单本身处理它 我是

我希望保护我的代码免受XSS攻击,但我一直在阅读的所有示例都涉及直接用户输入验证(例如在联系人表单或登录中)

我有点困惑,如果没有直接输入的方法,我是否需要保护我的代码(即,我的网站只是从数据库中读取而不是写入)?我仍然认为我需要这样做,因为我将我的数据库归类为一个外部源,而变量中的数据仍然来自其他地方

我是否认为任何读取的数据仍然构成用户输入,并应进行相应处理?此外,如果我随后添加了一个联系人表单,那么我是否需要验证/清理/转义每个页面中从数据库中提取的每一条信息,或者只在表单本身处理它

我是否认为任何读取的数据仍然构成用户输入,并应进行相应处理

总的来说,是的。大多数数据库大多包含纯文本和数字

不过也有例外。例如,如果您显式地将HTML存储在其中,并确保在输入时它是安全的(或至少是可信的),那么您就不必担心在提取数据时保护自己不受XSS的影响。一个例子是CMS(比如Wordpress),它允许用户在文章中输入HTML

此外,如果我随后添加了一个联系人表单,那么我是否需要验证/清理/转义每个页面中从数据库中提取的每一条信息,或者只在表单本身处理它

该表单允许输入来自系统外部的数据。当你把数据放在任何地方时,你需要采取任何适合的措施。若将其放入SQL字符串中,则需要将其转义为SQL。如果你把它放在一个电子邮件主题中,那么你需要为此而逃避它。如果你把它放到一个HTML文档中,那么你需要为此转义它。(等等)

我是否认为任何读取的数据仍然构成用户输入,并应进行相应处理

总的来说,是的。大多数数据库大多包含纯文本和数字

不过也有例外。例如,如果您显式地将HTML存储在其中,并确保在输入时它是安全的(或至少是可信的),那么您就不必担心在提取数据时保护自己不受XSS的影响。一个例子是CMS(比如Wordpress),它允许用户在文章中输入HTML

此外,如果我随后添加了一个联系人表单,那么我是否需要验证/清理/转义每个页面中从数据库中提取的每一条信息,或者只在表单本身处理它

该表单允许输入来自系统外部的数据。当你把数据放在任何地方时,你需要采取任何适合的措施。若将其放入SQL字符串中,则需要将其转义为SQL。如果你把它放在一个电子邮件主题中,那么你需要为此而逃避它。如果你把它放到一个HTML文档中,那么你需要为此转义它。(等等)。

忘记“用户输入”这个术语,用“未知字符串”来思考。任何您不知道其包含内容的事实在正确的上下文中都有潜在的危险或破坏性

同样重要的是要记住,对于所有情况,没有单一的解决方案。例如,这些都可能需要不同类型的消毒或泄漏:

  • HTML属性:

    忘记术语“用户输入”,用“未知字符串”来思考。任何您不知道其包含内容的事实在正确的上下文中都有潜在的危险或破坏性

    同样重要的是要记住,对于所有情况,没有单一的解决方案。例如,这些都可能需要不同类型的消毒或泄漏:


    • HTML属性:

      实际上XSS不是关于用户输入,而是关于从任何地方检索到HTML页面的任何内容的输出。请参阅:@WesleyMurch,谢谢你-我一直在阅读它,但仍然感到困惑。继续读下去可能是个好主意。@Adam这没有多大帮助-我知道XSS不好,我正在学习如何防止它,我要问的问题是什么构成用户输入-显然有直接的用户输入,但是,我输入数据库的数据是否也构成了用户输入?这是一个更好的思考方式——本质上,如果我调用一个查询,那么数据是未知的,不是吗?不管怎么说,代码是未知的……好吧,这在我看来是如此。实际上XSS不是关于用户输入,而是关于从任何地方检索到html页面的任何内容的输出。请参阅:@WesleyMurch,谢谢你-我一直在读它,但仍然感到困惑。继续读下去可能是个好主意。@Adam这没有多大帮助-我知道XSS不好,我正在学习如何防止它,我要问的问题是什么构成用户输入-显然有直接的用户输入,但是,我输入数据库的数据是否也构成了用户输入?这是一个更好的思考方式——本质上,如果我调用一个查询,那么数据是未知的,不是吗?不管怎么说,代码是未知的……好吧,在我看来就是这样。是的,我也在考虑特定的HTML,因为我将有字段调用指向外部站点的链接。这是很有帮助的,谢谢。是的,我也在考虑特定的HTML,因为我将有一些字段调用指向外部站点的链接。这很有帮助,谢谢。所以请直接回答“在处理XSS攻击预防时,什么是‘用户输入’?——您在HTML或JavaScript中输入的所有内容,没有例外。(我的SQL示例根本与XSS无关,但在理解上下文方面仍然相关)。因此,请直接回答“在处理XSS攻击预防时,什么构成‘用户输入’?——Everyth