java,防止用ajax中的url 直接访问,怎么处理呀?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java,防止用ajax中的url 直接访问,怎么处理呀?相关的知识,希望对你有一定的参考价值。
简单啊,你用ajax请求的时候传递一个参数,设置一个特殊值,比如ajaxReq="1"(,然后在服务端请求处理时判断一下,包含这个特殊值才给处理。而非ajax请求,即url直接访问,处理请求时查不到这个值,就给它导到错误页面,不就行了? 参考技术A 接受ajax的RequestMapping里面限制GET请求
@RequestMapping(value="请求名",method = RequestMethod.POST)
只接受POST 参考技术B 添加过滤器,或者用一些安全框架都可以 参考技术C 权限控制,这是基本的东西
如何防止Angularjs 1.x中的直接HTML访问?
如何防止Angularjs 1.x中的直接HTML访问?
码:
$stateProvider.state('home', {
url: "/",
templateUrl: 'views/home.html',
title: 'Home',
controller: 'homeCtrl as home',
})
在浏览器中
在这种情况下,http://example.com/views/home.html,我的HTML文件在浏览器中呈现
答案
从.state
,您只能通过使用resolve
并拒绝承诺来阻止用户访问您的州
.state('home', {
url: "/",
templateUrl: 'views/home.html',
title: 'Home',
controller: 'homeCtrl as home',
resolve: {
isAutherized: function($q) {
// some logic goes here i guess...
return $q.reject("You shell not pass");
}
}
})
这将失败转换,并且结果将无法访问该特定HTML
另一答案
通常,您应该监听$ stateChangeStart事件,并检查您是否获得了目标的特定权限,并通过例如进行重定向来防止更改。
angular.module("myApp").run(function ($rootScope, $state, AuthService) {
$rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams){
if (toState.authenticate && !AuthService.isAuthenticated()){
// User isn’t authenticated
$state.transitionTo("login");
event.preventDefault();
}
});
});
以上是关于java,防止用ajax中的url 直接访问,怎么处理呀?的主要内容,如果未能解决你的问题,请参考以下文章