首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PageMethods安全性

PageMethods安全性
EN

Stack Overflow用户
提问于 2010-03-21 09:12:50
回答 4查看 2.8K关注 0票数 3

我正在尝试'AJAX-ify‘我的网站,以改善用户界面体验。在性能方面,我也在努力摆脱UpdatePanel。我在Encosia上看到了一篇很棒的文章,展示了一种使用PageMethods发帖的方式。我的问题是,页面方法在生产环境中的安全性如何?如果是公开的,任何人都可以创建一个JSON脚本来直接发布到服务器上吗,或者是否正在进行跨域检查?我的PageMethods还会将数据写入数据库(在过滤之后)。

我在页面中使用了表单身份验证,在页面加载时,它会将未经身份验证的用户重定向到登录页面。如果用户直接发布到该方法,该页面上的page方法是否也需要检查身份验证,或者整个页面都继承了该身份验证?(本质上,即使用户只发布到PageMethod,整个页面周期也会发生吗)?

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-21 09:19:49

PageMethods和它们所在的处理程序一样安全。

FormsAuthentication将保护除登录页面以外的所有内容。

在未受保护的处理程序上,如login,您应该只公开1)不敏感或2)验证用户的方法。

编辑:对于关于CSRF和XSS的评论和其他回答,请参阅http://weblogs.asp.net/scottgu/archive/2007/04/04/json-hijacking-and-how-asp-net-ajax-1-0-mitigates-these-attacks.aspx

票数 3
EN

Stack Overflow用户

发布于 2010-03-21 09:15:56

您正在尝试保护自己免受CSRF攻击。

通过在POST参数中要求授权码,并在初始页面加载时提供授权码,可以防止这些攻击。(授权码应该是每个IP地址和每个用户的,并且应该很快过期)

为了增加安全性,您可以使每个验证码仅可用一次,并让每个请求返回一个新的验证码。(但是,如果任何请求失败,您将需要重新加载页面)

票数 1
EN

Stack Overflow用户

发布于 2018-04-06 02:15:39

我正在做一个大量使用ASP.Net WebForms页面方法的项目,我使用Ajax与其交谈。与用JavaScript编写所有代码相比,这对我来说非常方便。

然而,保护页面方法成为一个困扰我的问题。因此,我看到我可以通过Postman和Fiddler访问页面方法,从而使黑客能够使用您的API。

我的解决方案非常简单,是我偶然发现的。将静态Cookie请求添加到页面方法将为非网站的任何应用程序返回错误。

代码语言:javascript
复制
 [WebMethod]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public static string GetAnything(object dat)
{
    HttpCookie myguid = HttpContext.Current.Request.Cookies.Get(Constants.Session.PreventHacking);
    var hackguid = myguid.Value ?? ""; //other page method contents
    return "anything";
}

对此方法的邮递员请求将返回:

代码语言:javascript
复制
{
"Message": "There was an error processing the request.",
"StackTrace": "",
"ExceptionType": ""}

而更详细的错误将在LocalHost上显示。

据我所知,有一些浏览器广告可以通过坐在网站旁边拦截API调用。我还没有测试过这个。然而,必须为此构建一个单独的安全修复程序。一旦我执行了一些测试,我会在这里更新。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2485445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档