【发布时间】:2015-07-13 09:00:56
【问题描述】:
我目前正在学习 Asp.Net MVC(我来自 WebForms 背景)并且我正在实现 Ajax 请求以调用返回 Json 对象的控制器方法。但是我正面临的问题是当我想执行某些操作直到用户达到某个阶段时,例如附加一个附加文本输入,添加一个保存按钮,创建一个新选项列表,问题是当用户经过身份验证我可以 从开发人员控制台(例如 Google Chrome)执行 ajax 调用并获取或发送该特定方法所需的 json 对象,即使该方法具有 [Authorize] 属性(当用户正确登录时)并且设置了 AntiForgeryToken,对 jQuery、MVC 和网络选项卡(在 Chrome 中)有一点了解,我可以假装调用是由于我从代码中允许的用户操作而不是从控制台进行的(我测试了自己并且它有效) )。我知道我需要执行双面验证,客户端和服务器端。当验证不多时,这不是问题,但是当验证数量增加时,这可能会很乏味。
是否有任何方法可以进行更安全的 ajax 调用,例如编码或隐藏,或者根据您的知识,发出这些请求时的最佳做法是什么。我会很高兴有网络资源或书籍,我可以在其中获得有关该主题的正确信息(我进行了搜索,但没有找到任何关于我的问题的明确或具体的内容,我可能搜索方式错误)
谢谢。
【问题讨论】:
-
你在问什么?您是否想问是否有办法允许来自代码的 ajax 调用,但如果它们是在控制台中手动输入的,则阻止它们?
-
@Scott Selby - 是的,类似的。
-
如果网站的用户对相关控制器具有权限,您将永远无法做到这一点 - 那么从控制台进行的任何 ajax 调用都将具有相同的会话和相同的 cookie,并且将授予相同的权限
标签: jquery ajax json asp.net-mvc google-chrome-devtools