首页 > 解决方案 > 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 和其他此类问题。

感谢任何可以作为通用解决方案实施的帮助,在此先感谢!

标签: telerikxssradtextbox

解决方案


推荐阅读