如何拒绝来自其他应用程序的 HTTP POST 请求?

拉杰什·卡纳

我正在对托管在 .net IIS 中的 web 应用程序进行安全检查,我知道有可能通过 HTTP Post 方法从任何其他应用程序访问我的网页,我们需要拒绝那些通过 HTTP POST 发出的请求方法,是否有任何可能的方法来否认这一点?

从下面的代码示例'www.example.com'是我的网站,'recepticle.aspx' 是通过 HttpClient从其他 Web 应用程序(例如:www.Hacker1.com)访问的网页,我如何防止这种情况?

写在 (www.Hacker1.com) 上的代码

private static readonly HttpClient client = new HttpClient();
var content = new FormUrlEncodedContent(values);
var response = client.PostAsync("http://www.example.com/recepticle.aspx", content);
var responseString = await response.Content.ReadAsStringAsync();

我需要拒绝来自其他 Web 应用程序对我的网页的 HTTP POST 请求,但我可以允许来自浏览器的请求

翁德雷·斯韦达

您只能拒绝所有人的 POST 请求 - 您不能有选择地拒绝他们。您将采取的任何保护措施(例如检查引荐来源网址)黑客站点都可以轻松模拟。适当的保护是强制用户进行身份验证,并只允许经过身份验证的用户发出此类请求。

IE 具有端点 login.aspx - 交换用户名/密码以获取身份验证 cookie/或令牌,并且 recepticle.aspx 应检查身份验证 cookie/令牌是否存在。

顺便提一句。身份验证主题很复杂,ASP.NET/IIS 内置了很多模板。还是很容易做错。因此,如果您不确定最好将身份验证委托给 OAUTH/使用您信任的大型提供商之一https://en.wikipedia.org/wiki/List_of_OAuth_providers

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章