javascript - 允许用户在应该在我的应用程序外部查看的页面中添加 javascript 代码是否危险?

标签 javascript ruby-on-rails security xss

我有一个 Ruby on Rails Web 应用程序,可以帮助用户创建他们的作品集。最初,他们选择一个模板,并且能够更改所选模板的文本。在这里,我为他们提供了特定字段,例如 "headline"、"description""projects"...这些字段在服务器端进行验证不允许 html 代码。

我还有另外两个字段:

  1. 嵌入视频代码(来自 youtube、vimeo 等...)
  2. 另一个允许添加自定义 JavaScript 的字段。(也许他们想要添加弹出脚本、跟踪代码或其他内容)。

当他们完成模板编辑后,单击“发布”按钮,可以在基于我的应用程序域的子域中看到他们的作品集,例如:user-subdomain.myapp.com/portfolio

我的问题是:允许用户放入自定义 JavaScript 或嵌入视频代码会影响我的应用程序的安全性吗?我是否容易受到 XSS、劫持或黑客攻击?如果是,我该如何使用 Rails 解决这些问题?

最佳答案

如果他们输入 JavaScript 代码,您将在向其他用户显示页面时存储并包含该代码,那么是的,这是一个安全漏洞。这意味着他们可以在其他人的用户帐户的上下文中执行您在该页面上可以执行的任何操作;这可用于窃取其他用户的信息等。

只要他们能够查看带有嵌入式 JavaScript 的页面,不,这不会降低您页面的安全性;他们可以通过书签甚至仅使用控制台轻松地将 JavaScript 注入(inject)您的页面。

关于javascript - 允许用户在应该在我的应用程序外部查看的页面中添加 javascript 代码是否危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28857774/

相关文章:

javascript - JavaScript 中的递归正则表达式模式

javascript - 从 jquery 访问 css block 的属性

ruby-on-rails - 为什么 ActiveRecord#first 调用之间的 sleep 会改变其行为?

ruby-on-rails - 在 Ember.js/Rails/Devise 应用程序中处理用户注册

php - 使用crypt()和password_hash()函数加密后密码不匹配

security - 使用 url 中的用户名/密码的 Apache 基本身份验证

javascript - 是否可以重复使用 Google reCaptcha token ?

javascript - Array.from 与 A​​rray.prototype.map

javascript - 使用 XML 更新时钟选择器输入字段

ruby-on-rails - rails 5 UJS : How to specify a single js file for execution