zoukankan      html  css  js  c++  java
  • 在ajax当中使用url重写来避免url的暴露

    记得一次面试,有这样一道面试题:
    jsp页面当中需要用到ajax的实现,此时需要调用java的url;此时的问题是如果用户查看页面源码就能看到真是的url,这个问题如何避免。

    说实话,AJAX我用的只是皮毛,只会用js获取参数,然后传递给java应用程序,由应用程序来加工处理。如果有返回需求的话,可以以xml的方式返回数据。

    自己使用的时候没有考虑过url暴露的问题,看到这个题目,当时没有了注意。下来想想,我自己的想到的实现方法是这样的,就是指定自己的一套规则,然后页面上写的url按照规则来组织,然后传到一个中间件上:这个中间件的功能就是解析这些url,得到最终的真实的url,然后由由这个中间件转到相应的请求上去处理。

    最近听同学说,好像url重写可以更好的实现,就看了一下
    1.下载urlrewrite,官方下载地址:http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.zip 
    2.将以下代码添加到web.xml里 
    Xml代码 
    <filter>  
            <filter-name>UrlRewriteFilter</filter-name>  
            <filter-class>  
                org.tuckey.web.filters.urlrewrite.UrlRewriteFilter   
            </filter-class>  
        </filter>  
        <filter-mapping>  
            <filter-name>UrlRewriteFilter</filter-name>  
            <url-pattern>/*</url-pattern>  
        </filter-mapping>  

    3.建立一个 urlrewrite.xml
     1<?xml version="1.0" encoding="utf-8"?>
     2<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
     3    "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
     4<urlrewrite>
     5 <rule>  
            <from>^/world/(.*)$</from>  
            <to>/world.jsp?tid=$1</to>  
        </rule>  
     9</urlrewrite>

    rule是url重写规则,from是显示出来的地址,to是映射的实际地址,$1是重写参数,可以为多个,()里是匹配的正则表达式. 

    在项目中新建world.jsp,启动tomcat,输入 
    http://localhost:8080/mysite/world/1 
    mysite是你的项目名 
    实际上访问的是http://localhost:8080/mysite/world.jsp?tid=1 
    这样就简单的实现了伪静态的效果 

    在ajax当中,var url = "";这个地方写个虚拟的访问路径,然后将解析规则用正则表示到urlrewrite.xml当中,那么到后台的时候,就可以自动解析成真实的路径,从而达到对url的保护。

     
     
  • 相关阅读:
    Android 长时间运行任务说明
    phoneGap,angularJs,onSen的一些备忘
    cordova 选择图片并上传到服务器
    手机PC文件传输
    一组RS485设备操作命令
    asp.net 中长尾链接实现推送 -- comet
    ardunio 实现RS485通讯-下位机
    JPEG Camer 图片上传
    ImageResizer 3.4.3配置
    arduino空调遥控器
  • 原文地址:https://www.cnblogs.com/iOS-mt/p/6003287.html
Copyright © 2011-2022 走看看