|
|
1
23
DenyGet默认值的原因是打开 MSDN 链接到 Phil Haack's blog 了解更多详情。看起来像是跨站点脚本漏洞。 |
|
|
2
8
默认情况下,HTTP GET作为ASP的一部分被禁用。NET的跨站点请求伪造(CSRF/XSRF)保护。如果您的web服务接受GET请求,那么它们可能容易受到第三方网站通过以下方式发出请求的攻击
然而,值得注意的是,禁用GET请求不足以防止CSRF攻击,也不是保护您的服务免受上述攻击类型的唯一方法。看 Robust Defenses for Cross-Site Request Forgery 以便很好地分析不同的攻击媒介以及如何防御它们。 |
|
|
3
3
当我将MVC网站从Visual Studio 2008迁移到Visual Studio 2010时,我也遇到了你的问题。 主aspx如下,它有一个ViewData,它调用一个类别控制器,用SelectList集合填充ViewData[“类别”]。还有一个脚本可以调用子类别控制器,用javascript填充第二个组合。现在,我能够通过在第二个控制器上添加AlloGet属性来修复它。 这是aspx和javascript
这是我的子类别控制器
|
|
|
4
2
我不知道这是否是他们选择更改默认值的原因,但这是我的经验: 当一些浏览器看到GET时,他们认为可以缓存结果。由于AJAX通常用于从服务器获取最新信息的小请求,因此缓存这些结果通常会导致意外行为。如果你知道给定的输入每次都会返回相同的结果(例如,无论你什么时候问我,“密码”都不能用作密码),那么GET就可以了,浏览器缓存实际上可以提高性能,以防有人多次尝试验证同一输入。另一方面,如果您希望根据服务器端数据的当前状态得到不同的答案(“myfavoriteusername”可能在2分钟前就可用了,但从那以后就被使用了),您应该使用POST来避免浏览器认为第一个响应仍然是正确的。 |