|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你觉得学习.NET怎么样,我懂的少,问的可能很幼稚,见笑了啊:)明天往MVC中到场了一个富文本编纂框,在提交信息的时分报了以下的毛病:
从客户端(Content="<EM><STRONG><U>这是测试这...")中检测到有潜伏伤害的Request.Form值。
申明:哀求考证历程检测到有潜伏伤害的客户端输出值,对哀求的处置已中断。该值大概唆使存在危及使用程序平安的实验,如跨站点剧本打击。若要同意页面重写使用程序哀求考证设置,请将httpRuntime设置节中的requestValidationMode特征设置为requestValidationMode="2.0"。示例:<httpRuntimerequestValidationMode="2.0"/>。设置此值后,可经由过程在Page指令或<pages>设置节中设置validateRequest="false"禁用哀求考证。可是,在这类情形下,激烈倡议使用程序显式反省一切输出。有关更多信息,请拜见http://go.microsoft.com/fwlink/?LinkId=153133。
原觉得就像一般的Asp.net页面一样,在头部的Page中到场ValidateRequest="false"就好了,谁知成绩仍是存在。弄了一个上午,成绩终究办理,将办理办法汇总以下:
1,在呈现该毛病的页面头部的page中到场ValidateRequest="false",那末该页面的任何一次Post提交都不会再考证提交内容的平安性。
如:
<%@PageTitle=""Language="C#"MasterPageFile="~/Views/Manage/ViewMasterPageEdit.Master"Inherits="System.Web.Mvc.ViewPage<MvcWebPhoto.Models.Entities.Article>"
ValidateRequest="false"%>
2,在web.config中的pages节中设置validateRequest="false",如:
<system.web>
<pagesvalidateRequest="false"></pages>
</system.web>
但如许,全部项目中的一切Form哀求都不再考证提交内容的平安性,极不倡始这类做法。
关于该成绩的平安的办理计划能够参看本站:
从客户端中检测到有潜伏伤害的Request.Form值的具体办理计划
3,假如你利用的是.Net3.5,MVC2.0及更高的版本,那末能够在处置Post办法的Action增加一个特征:[ValidateInput(false)],如许处置就加倍有针对性,进步页面的平安性。
如:
[HttpPost]
[ValidateInput(false)]
publicActionResultCatalogEdit(Catalogmodel)
{
returnView();
}
主要:
假如你利用的是MVC3.0,那末你会发明做了以上的设置后仍是有效。这是由于你还必要在web.config中做以下设置:
<system.web>
<httpRuntimerequestValidationMode="2.0"/>
</system.web>
(唉~十分十分的贫苦啊)
注重:在MVC项目中,Views文件夹下与主项面前目今,城市有一个web.config文件。Views下的web.config文件只对Views文件夹上面的文件无效。假如你要处置的页面不在Views上面,那末<httpRuntimerequestValidationMode="2.0"/>必定要设置在主项面前目今的web.config中才有效。
(唉~我也是由于这个缘故原由,才弄了一个上午才乐成)
到此,成绩办理,但愿对碰着一样成绩的伴侣带来匡助。我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限管理上很不灵活。 |
|