zoukankan      html  css  js  c++  java
  • A potentially dangerous Request.Path value was detected from the client 异常

    我们在ASP.net 4.0 中使用URL导向后, 我们在访问类似如下的地址时 http://wz.csdn.net/yanjinde77/一个面试题!********/,就会报错误: 

    A potentially dangerous Request.Path value was detected from the client

    at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()  

    at System.Web.HttpApplication.ValidateRequestExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()  

    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

    这是因为上述地址中有*这个特殊字符存在。

    如果你想不让ASP.net 替你拦截这些特殊字符,你需要设置如下Web.config的节:

    <?xml version="1.0"?>
    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    <system.web>
    <httpRuntime requestPathInvalidCharacters="" />
    </system.web>
    </configuration>

    注意其中的requestPathInvalidCharacters 它是一个以逗号分隔的无效字符列表。不设置它时,它默认的无效字符集(以,分割)是后面7个:<,>,*,%,&,:,\

    即,不设置这个属性,默认就是如下设置:

    <?xml version="1.0"?>
    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    <system.web>
    <httpRuntime requestPathInvalidCharacters="&lt;,&gt;,*,%,:,&amp;,\" />
    </system.web>
    </configuration>

    如果你想这些字符全部不受限制,就应该设置 requestPathInvalidCharacters="" , 如果是部分字符受限制,部分字符不受限制,就需要在 requestPathInvalidCharacters 中设置需要受限制的字符,不受限制的不用设置。

     

    参考资料:

    Experiments in Wackiness: Allowing percents, angle-brackets, and other naughty things in the ASP.NET/IIS Request URL
    http://www.budoou.com/article/981320/

  • 相关阅读:
    好的开源项目汇总
    强制SVN上传代码时添加日志
    微信开发-回调模式
    Struct2中自定义的Filter无效
    Ajax 传包含集合的JSON
    PostgreSQL数据库PL/PGSQL学习使用
    单用户对比PG 9.5.4和SYBASE 15.7对超大表的操作性能
    一场一波三折的SQL优化经历
    聚簇索引对数据插入的影响
    磁盘IO初探
  • 原文地址:https://www.cnblogs.com/ghj1976/p/1767353.html
Copyright © 2011-2022 走看看