Javascript 我们应该如何防止“仅”中断页面呈现的
时间:2022-12-15 09:11 来源:网络整理 作者:采集插件 点击:次
Javascript 我们应该如何防止“仅”中断页面呈现的XSS攻击? Javascript 我们应该如何防止“仅”中断页面呈现的XSS攻击? html asp.net-mvc json Javascript 我们应该如何防止“仅”中断页面呈现的XSS攻击?,javascript,html,asp.net-mvc,json,xss,Javascript,Html,Asp.net Mvc,Json,Xss,假设我们有一个表单,允许输入一段降价作为消息体。然后,该文本在另一个页面上以HTML格式呈现为JSON: <html> <body> <script type="text/javascript"> loadMessage({ name: 'John Doe', message: '**Hello** World' }); </script> 假设我们有一个表单,允许输入一段降价作为消息体。然后,该文本在另一个页面上以HTML格式呈现为JSON: <html> <body> <script type="text/javascript"> loadMessage({ name: 'John Doe', message: '**Hello** World' }); </script> </body> </html> 由于导致浏览器关闭脚本块,因此会引发意外的标记非法异常。Marked能够消除这种攻击,但这种攻击甚至在JavaScript执行之前就已经发生了提交初始表单时,去除所有和。这意味着要更新很多框架代码(使用ASP.NETMVC,因此我们必须扩展默认的ModelBinder) 为此利用JSON格式化程序-在编写JSON时转换为'。我们会保持原始资料的完整性,但这可能是件坏事 我们应该如何减轻这种攻击?我个人可能会同意剥离任何类似于脚本标记的东西,因为这样的方法将提供额外的一层安全性,以防止标记解析器中的验证错误。但您的里程数可能会因应用而有所不同 如果确实需要编码,请参阅以获取合理的编码方法(即使用\x3c替换小于号)。这将有助于: <html> <script> alert("1 \x3c/script> 2"); </script> </html> 警报(“1\x3c/脚本>2”); 为什么不转义HTML实体呢?这是一个标记和一个标记。真的值得在客户端上转义然后取消转义吗?有什么特别的原因让您将标记输出到JavaScript而不是直接输出到HTML吗?是的-我们在客户端引导我们的模型/视图以访问原始数据。我们使用的是主干网,这是主干网应用程序的一个例子。你会在发布表单或呈现JSON时去掉值吗?这是一个公平的问题。在输入时剥离比较安全,但会永久丢失数据。但是这样你就不必对每个输出都进行剥离,而且因为脚本标记对你来说不太可能是重要的数据,所以我会选择更安全的方法(在添加足够的单元测试以确保剥离器真正正常工作之后)。是的,我将对输入进行剥离。干杯 <html> <script> alert("1 \x3c/script> 2"); </script> </html> (责任编辑:admin) |