ruby - 解决 ruby on rails 上的 XSS 问题
问题描述
示例:如果我们存储<script>alert(299792458)</script>
为名字输入,则该值将被接受并存储。
当我们显示数据时,会弹出一个警报。我知道这是一个跨站点脚本 (XSS)。我已经浏览了http://guides.rubyonrails.org/security.html#cross-site-scripting-xss但我无法理解。
我需要做的就是确保警报不会发生。那么,最好的选择是什么。保存名字时对其进行清理(或)在显示时使用 html_safe。
解决方案
我使用了这个功能,它按预期工作。
CGI::escapeHTML(user.firstname)
在显示页面上,它显示<script>alert("123");</script>
但脚本没有运行,因为它转义了标签。
推荐阅读
- c - 在 C 中初始化联合的动态数组
- powershell - Powershell图表轴数据类型问题
- java - JSON-B REST 有效负载验证
- mysql - 在第一次 SELECT 查询后从第二个表中获取特定列
- json - /ReportServlet.java:[25,52] 错误:com.google.appengine.labs.repackaged.org.json 包不存在
- java - 我无法在 MacOS 上安装 maven
- javascript - 如何使用 Nativescript 和 Vanilla JS 使用 Firebase 数据填充 Listview
- r - R中的动态名称(子集和合并)
- azure - 无法读取存储帐户和密钥 - Azure
- php - 会话数据如何从一个页面传递到另一个页面?