标签: html-injections

在Javascript中防止HTML和脚本注入

假设我有一个带输入框的页面.用户在输入框中键入内容并点击按钮.该按钮触发一个函数,该函数获取键入文本框中的值,并将其输出到文本框下方的页面,无论出于何种原因.

现在,令人不安的是难以找到明确的答案,或者我不会问,但你会如何输出这个字符串:

<script>alert("hello")</script> <h1> Hello World </h1>
Run Code Online (Sandbox Code Playgroud)

这样既不执行脚本也不显示HTML元素?

我在这里真正要问的是,是否存在一种在Javascript中避免HTML和脚本注入的标准方法.每个人似乎都有不同的方式(我使用jQuery所以我知道我可以简单地将字符串输出到文本元素而不是html元素,但这不是重点).

html javascript javascript-injection html-injections

47
推荐指数
2
解决办法
10万
查看次数

重定向到新的 SPA 页面时在标头中传递身份验证令牌

假设这些:

       A -----------------------> B
(Sender website)          (Angular website)
Run Code Online (Sandbox Code Playgroud)

我们实现了一个普通的 Angular SPA (B),它的 index.html 和其他资源只是托管在 IIS 中,并且有一个简单的重写规则来处理 Angular 中的路由。Angular 中的用户需要登录并获得 JWT 令牌,并将其存储在浏览器存储中。

有一个网站(A)想要将用户重定向到 Angular 网站,但我们也希望将 JWT 令牌从 A 传递到 B,因为令牌是相同的,并且我们希望防止用户再次登录。

网站 A 可以在重定向到 B 时在post 请求标头中发送令牌。问题是 JS (Angular) 无法直接获取标头参数,因为它们正在发送到 IIS。

问题:

  1. IIS中有没有一种方法,我们可以从请求中获取令牌,并在检索index.html时将其设置在html属性中?这样,JS 就可以检查它的 html 元素并找到令牌。

  2. 上述技术正确吗?如果没有,您能给出您的建议吗?

iis http-post html-injections jwt angular

8
推荐指数
2
解决办法
4628
查看次数

HTML注入其他人的网站?

我有一个类似于Paypal嵌入网站的产品(客户将我的按钮添加到他们的网站,用户点击此按钮,一旦服务完成,我将他们重定向回原始网站).

我想向客户演示我的技术而不实际修改他们的实时网站.为此,是否可以配置http://stackoverflow.myserver.com/以便在无缝注入我的按钮时镜像http://www.stackoverflow.com/

这意味着,我想演示在实时网站上使用我的按钮的体验,而不是在我的服务器上实际重新托管客户的数据库.

我知道这里存在安全问题,所以只要我们满足要求,请随时提及它们.对于使用HTTPS的网站,我不需要演示此内容.

更具体地说,我想通过在页面中注入Paypal按钮来演示Stackoverflow问题的财务赏金的想法.如何在不修改https://stackoverflow.com/的情况下通过http://stackoverflow.myserver.com/进行演示?

请求重新审核:我已根据您的要求对问题进行了重新编写.如果您仍然认为它过于宽泛,请通过在下面发表评论来帮助我理解您的推理.

更新:我发布了如何重写Javascript代码引用的URL的后续挑战

UPDATE2:我放弃了bookmarklet和Greasemonkey的想法,因为它们需要客户端安装/修改.我们需要尽可能无缝地完成这个过程,否则许多过程会被这个过程关闭,不会让我们说话.

html demo html-injections

7
推荐指数
1
解决办法
1987
查看次数

FastAPI 中如何防止 html 注入?

我们正在使用名为 FastAPI 的 Python 框架开发 REST API。html 注入代码安全测试失败。他们在 post 有效负载中发送一些 html 标签代码,我们将其插入到数据库中并在 GET 响应中发送相同的代码。在 FastAPI 中处理请求时,有什么方法可以防止这种 HTML 注入。

python html-injections fastapi

7
推荐指数
1
解决办法
3174
查看次数

如何在 Liquid 中默认转义 HTML?

我知道可以使用escape过滤器在液体中转义 HTML

# cthulhu is "<blink>blink</blink>"

{{ cthulhu || escape }}
Run Code Online (Sandbox Code Playgroud)

但是默认情况下是否可以让液体从所有变量中的 HTML 中逸出?

我知道 Rails 默认情况下会转义所有 HTML,但我必须使用html_safe,否则液体模板中的所有 HTML 都会被转义。

我只在 GitHub 上发现了这个问题,它告诉 OP 只在 Stack Overflow 上询问。

ruby ruby-on-rails liquid html-injections

6
推荐指数
0
解决办法
536
查看次数

为什么将这5(6?)个字符视为“不安全” HTML字符?

在PHP中,有一个名为htmlspecialchars()的函数,该函数对字符串执行以下替换:

  • & (与号)转换为 &amp;
  • " (双引号)转换为 &quot;
  • '(单引号)转换为&#039;(仅当设置了标志ENT_QUOTES时)
  • < (小于)转换为 &lt;
  • > (大于)转换为 &gt;

显然,这样做是基于这5个特定字符是不安全的HTML字符

我可以理解为什么最后两个不安全:如果将它们简单地“回显”,则可以交付任意/危险的HTML,包括可能带有<script>这些内容的javascript 。

问题1.为什么前三个字符(“&”号,双引号,单引号)也被视为“不安全”?


另外,我偶然发现了GitHub上的这个名为“ he”的库(由Mathias Bynens撰写),该库与编码/解码HTML实体有关。在那里,我发现了以下内容:

在HTML内容(&,<,>,“,”和“)中不安全使用的[...]字符将被编码。[...]

来源

问题2.是否有充分的理由考虑反引号另一个不安全的HTML字符?如果是,这是否意味着上述PHP函数已过时?


最后,所有这些都引出了一个问题:

问题3.除了上面提到的那些5/6字符以外,还有其他不应该认为是“不安全”的字符吗?

html escaping code-injection javascript-injection html-injections

3
推荐指数
1
解决办法
1916
查看次数

运行时错误:主线程不在主循环中使用带有 Django 的 Matplotlib

我正在创建一个 Matplotlib 图以显示在我的 Django 应用程序的 HTML 模板中。我将此图保存在我的静态文件下,然后将其加载到img带有已保存.png. views.py在获得对图的参考后,我在我的中执行此操作。

        # Get analysis visualization chart
        figure = analyser.visualize_tweets(emotions)

        # Save figure in static folder as png
        figure.savefig('static/analysis_figures/figure.png')

        # Inject html with figure path
        response['analysis_figure_path'] = 'analysis_figures/figure.png'

return render(request, 'landing_page/index.html', response)
Run Code Online (Sandbox Code Playgroud)

我的 HTML 是这样的:

<img src={% static analysis_figure %} alt="">
Run Code Online (Sandbox Code Playgroud)

但是,这会导致第二次调用RuntimeError: main thread is not in main loopmy 中的函数时发生views.py(如果一切正常后调用它)。为了防止这个错误,我将保存 Matplotlib 图形移动到main()as 在主线程中运行,然后在我的原始函数中调用它。这修复了错误,但会阻止我的 HTML 重新加载,因此每次用户提交查询时,新图形都会显示在前一个之上,而不会删除前一个。关于任何问题的任何想法?

python django matplotlib django-templates html-injections

3
推荐指数
1
解决办法
3224
查看次数