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

另一答案

这是一个很好的解决方案https://solidfoundationwebdev.com/blog/posts/require-authentication-for-certain-routes-with-ui-router-in-angularjs

通常,您应该监听$ 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 直接访问,怎么处理呀?的主要内容,如果未能解决你的问题,请参考以下文章

jsp+servlet怎样防止用户用URL直接访问页面

防止用户直接访问 django 中的重定向 URL

静态网页能禁止用url直接访问吗? 高手指点 谢谢

如何防止文件直接 URL 访问?

Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因

怎么用Axis2发布一个webservice,service返回json格式数据,可以用Ajax访问直接解析?