telerik - Telerik RadTextBox XSS 过滤器问题
问题描述
我们正面临 RadTextBox 对 XSS 攻击开放的安全问题。攻击可能通过在响应中注入 xss 字符串作为中间人使用数据包捕获,例如 Burp 社区版。注入是通过设置一些已知的 RadTextBox 可见和隐藏属性来实现的,例如 _displayText、_text 等。然后由add_init 函数(由 Telerik RunTime 为每个控件嵌入到页面中)来获取。
注入示例:
Sys.Application.add_init(function() {
$create(Telerik.Web.UI.RadTextBox,
{"_displayText":"<script>alert('xss attack - displayText')</script>",
"_focused":true,"_initialValueAsText":"<script>alert('xss attack - InitialValueAsText')</script>",
"_postBackEventReferenceScript":"setTimeout(\"__doPostBack(\\\u0027ctl00$ContentPlaceHolder1$txtuser\\\u0027,\\\u0027\\\u0027)\", 0)",
"_skin":"Default",
"_validationText":"<script>alert('xss attack')</script>",
"clientStateFieldID":"ctl00_ContentPlaceHolder1_txtuser_ClientState",
"enabled":true,
....
{"load":OnPreRender}, null,
$get("ctl00_ContentPlaceHolder1_txtuser"));});
从生成的脚本中可以明显看出,xss 已成功插入,它将显示相同的警报。
修复尝试 我试图在加载时添加一个 JS 函数调用,但在 xss 发生之前没有执行。
建议修复 我建议更新$get函数以处理 xss 和其他此类问题。
感谢任何可以作为通用解决方案实施的帮助,在此先感谢!
解决方案
推荐阅读
- java - 将 Spark 与已实现的日志记录机制一起使用?
- java - 如何使用广播接收器警报管理器每 10 秒向服务器发送一次文本
- css - 用于传递值的 scss 插值帮助
- jenkins - 在访问构建变量时在从站上运行(系统/詹金斯)groovy 脚本
- linux - 如果用户存在则更新密码 Ansible
- javascript - 在单元测试中,如何测试具有对象参数的函数?
- json - JMeter 比较 JSON 和 JDBC 请求
- c# - 如果是通用实体,如何在 Entity Framework 6 中设置导航属性
- android - 绑定Service,监听主Activity中服务的变量变化
- javascript - 在 React 中获取子组件的偏移量/高度