Web ';自我';和';不安全内联';在内容安全策略中?

Web ';自我';和';不安全内联';在内容安全策略中?,web,content-security-policy,Web,Content Security Policy,我试图了解内容安全策略如何能够减轻Web服务器上的XSS攻击。假设用户输入字段中存在XSS漏洞。它可以用来诱导Javascript,如alert(1),但也可以诱导更严重的输入,如过滤Cookie的脚本 当我尝试在该Web服务器上实现内容安全策略时,我注意到 script-src 'self' 以及 script-src 'unsafe-inline' 防止Cookie外渗,但是“self”也可以防止警报(1)和不安全的内联过滤 我不是网络工程专家,所以我不知道内联或self指的是什么。当我

我试图了解内容安全策略如何能够减轻Web服务器上的XSS攻击。假设用户输入字段中存在XSS漏洞。它可以用来诱导Javascript,如alert(1),但也可以诱导更严重的输入,如过滤Cookie的脚本

当我尝试在该Web服务器上实现内容安全策略时,我注意到

script-src 'self'
以及

script-src 'unsafe-inline'
防止Cookie外渗,但是“self”也可以防止警报(1)和不安全的内联过滤


我不是网络工程专家,所以我不知道内联或self指的是什么。当我试图保护我的Web服务器时,它们指的是什么?它们之间有什么相似之处和不同之处?这与我得到的结果有什么关系?

“自我”只是网站自我域的一个助记符(标记)

例如,可以通过
http://example.com
http://www.example.com
https://example.com
https://www.example.com
<代码>http://example.com:8080等

因此,您必须在
script src
指令中指定所有这些主机源,因为您不知道用户将通过哪个URL访问您的网站。
或者,您可以只指定
“self”
,这意味着:

  • 如果用户以
    http://www.example.com
    ,浏览器将替换此源,而不是
    “self”
  • 如果用户以
    http://example.com:81
    ,浏览器将替换此源,而不是
    “self”
请注意,对于
'self'
令牌用法,最好在HTML中有相对URL。如果用户以
http://www.example.com
并且在HTML中,代码正在使用
-脚本加载将被阻止

connectsrc
指令中,
'self'
令牌还允许
ws://example.com
wss://example.com
在与CSP3兼容的浏览器中

“self”
是安全的,因为它不允许通过注入内联脚本或第三方脚本来实现XSS

'safe-inline'这只是一个令牌,允许在网页中显示3种类型的内容

“unsafe-inline”
是不安全的,因为它允许通过脚本注入XSS