Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果用户提交XML,如何防范黑客攻击_C#_Security_Asp.net Mvc 2 - Fatal编程技术网

C# 如果用户提交XML,如何防范黑客攻击

C# 如果用户提交XML,如何防范黑客攻击,c#,security,asp.net-mvc-2,C#,Security,Asp.net Mvc 2,我有一个特性,用户可以在表单中提交纯XML。当我的服务器得到响应时,我将根据XML模式对其进行验证,然后将其存储在数据库中。我从不在网页上显示XML,除非它是用于编辑的格式 我使用XML来呈现网页中的html表单或文本,我将对文本进行编码,除非用于编辑,否则不会在浏览器中显示实际的XML。我是否经常受到黑客攻击?我怎样才能更好地抵御这种情况 例如: <criteria name="Performance" type="textbox">115 Horsepower</crite

我有一个特性,用户可以在表单中提交纯XML。当我的服务器得到响应时,我将根据XML模式对其进行验证,然后将其存储在数据库中。我从不在网页上显示XML,除非它是用于编辑的格式


我使用XML来呈现网页中的html表单或文本,我将对文本进行编码,除非用于编辑,否则不会在浏览器中显示实际的XML。我是否经常受到黑客攻击?我怎样才能更好地抵御这种情况

例如:

<criteria name="Performance" type="textbox">115 Horsepower</criteria>
115马力

上面将呈现一个包含单词115 Horsepower的表格单元格,或者呈现一个包含单词115 Horsepower的文本框

考虑一下XML的某些部分丢失和某些部分重复两次或更多。请注意架构中的边缘情况。

这里是一个XML内容攻击向量的例子:


如果您详细说明如何使用该XML,将会有所帮助。当我从用户那里获取XML时,我会在根据我的模式进行验证后将其存储在数据库中。有一次,当我需要XML时,我使用它来呈现网页中的文本或呈现html表单。但在我将其发送给brwser之前,我将对任何呈现的内容进行编码。“我使用XML呈现html表单”-因此您可以以某种方式解释XML。如果语言/解释器是图灵完整的,那么攻击者可以上传一个无限循环。不是10亿个笑,而是6.8x10^38个笑。有没有办法抵御这种攻击?Wiki页面链接中有Java指南(禁用XML解析器的某些功能)。据推测,类似的情况也适用于其他语言。