【问题标题】:How do I add XSS protection on my OpenCart 2.3 online store如何在我的 OpenCart 2.3 在线商店中添加 XSS 保护
【发布时间】:2017-05-04 05:57:07
【问题描述】:

我们在 Amazon Web Services 中托管了一个 OpenCart 2.3。我们已采取措施防范 XSS,即我们在 AWS 设置上激活了 XSS 保护。在谷歌浏览器上,你会看到我们的标题:

X-XSS-Protection:1; mode=block

我做的一个测试是在结帐评论中输入以下内容:

<html>
<script>Alert('hello world')</script>
</html>

结帐时,没有显示警报,这意味着脚本没有执行?我检查了数据库,发现标签被编码,例如存储为 这应该意味着我们的网站受到 XSS 保护?

我们还可以采取哪些其他步骤来全面防范 XSS

【问题讨论】:

    标签: security opencart xss


    【解决方案1】:

    X-XSS-Protection 标头没有按照您的想法执行。请参阅What is the http-header "X-XSS-Protection" 以获得一个不错的 SO 概述。但 tl;dr 是它在 IE8+ 上启用了某些行为。


    更广泛地说,XSS 就其本质而言,并不是您可以通过单一操作来防范的。每次您接受一些用户输入时,您都必须格外小心,以验证它是否符合您希望它采用的格式。每当您将该输入呈现给用户时,您都必须正确处理它,以便恶意脚本不会在该用户的上下文中执行,并且会做的事情。

    OWASP 有一个不错的 XSS prevention cheatsheet,这是一个非常不错的资源。

    但是,原则上,始终根据要显示的区域对用户提供的输入进行转义。例如,如果用户为购物项目的标题提供了一些文本,那么它应该是 just 文本,并在需要 just 文本的 HTML 元素中使用(例如 inline 元素之一)和 HTML 转义等。另一方面,如果用户提供了 URL,则应该在 URL 有效的上下文中使用它(作为例如图像)和 URL 转义。避免允许用户提供自己的 HTML、CSS 或脚本。并避免将用户提供的值放在脚本、CSS 等中。


    最后,由于您使用的是 OpenCart,因此您可以从其他人已经完成的大量工作中受益。因此,除非您正在做一些额外定制的事情并使用框架的内部部分,否则您可能不会陷入困境。当然,还要遵循框架内的约定。

    【讨论】:

      猜你喜欢
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 2017-01-17
      • 1970-01-01
      相关资源
      最近更新 更多