【发布时间】:2020-12-23 08:10:31
【问题描述】:
就数据而言,我有一个关于 XSS 的非常基本的问题。虽然常见的预防技术是对数据进行编码,但编码是否需要双向进行,即在服务器端,当它向浏览器发送一些响应时,或者我们是否还需要编码(比如用户输入数据,例如搜索字段) 在我们将其发送到服务器之前?
【问题讨论】:
-
任何与安全有关的事情都必须在服务器上完成。客户端上的验证/其他数据处理只是为了访问者的方便,这与安全性没有任何关系。
-
@Teemu 对于 javascript 应用程序(例如 SPA),这是不正确的。
-
@GaborLengyel 您无法在客户端执行任何操作来阻止用户在发送请求之前对其进行操作。请注意,您甚至不需要实际页面,您可以从另一台服务器发布请求...
-
@Teemu 我完全理解这一点,但是 DOM XSS 可以(并且确实)在不涉及任何服务器的情况下出现,在这种情况下,您确实需要在客户端上进行编码(即使使用正确的设施隐含) .
-
@GaborLengyel 这种编码有什么价值?用户可以通过 DevTools 甚至使用扩展在页面上注入和执行他们想要的任何代码。如果有人想破解他们自己的帐户或其他东西,您无法阻止它。不过,如果您要链接到第三方脚本,那么进行一些检查可能会有用。
标签: javascript security xss