前提是已经登陆了!
面试问到这个问题  我说了session等传参数的方法,他说除了传参数因为这样不安全。
求大神讲解有那些方法??

解决方案 »

  1.   

    只允许post,不允许get,在服务器端测试,如果get就报错
      

  2.   

    这个很简单不过问新人有点,可以通过IE控件啊,或者使用socket写http协议啊,都可以达到不开IE不输网址取得网页。
      

  3.   

     不显示删除回复显示所有回复显示星级回复显示得分回复 如何实现不能通过直接输入网址访问页面?lz标题这么写。可内容又说是前提已经登录lz是想说虽然在浏览器中已经登录,直接输入网址也不让直接访问,必须经过登录页面么?
      

  4.   


    如果页面中有 <a href="xxx.action"> 这样的代码呢
    这也是get提交呀,也报错吗?
    那面试官是在扯蛋,
    不输入网址,就连网站首页也进不去,
    这样的网站做来给谁用?
      

  5.   

    纯B/S开发是办不到的,
    做成B/S和C/S的结合体倒是有可能,
    用C/S窗体去加载B/S的页面,用C/S窗体是没有地址栏的,但它打开的却是B/S的页面,
    右键单击还能查看源代码,
    但是用户必须下载安装C/S的客户端,
    这样的例子也蛮多的,我们公司就有这样的项目!
      

  6.   

    面试官问的应该是如何实现页面的隐藏问题,比如一个网站,只有首页可以在浏览器里面输入网址进行访问,而其他页面只能通过首页的链接来进行访问的,如果直接输入某个页面的网址则会报错:该页面不存在,其实struts就可以实现页面的保护,把除了首页之外的页面放在web-inf下,通过配置struts.xml就可以实现访问
      

  7.   

    表单post算不?或是楼上说的  用过滤器
      

  8.   

    直接用Javascript设置客户端IE属性,隐藏掉地址栏、所有菜单和系统右键菜单。 另外对每个页面进行用户权限验证就可以全面阻止第三方人员输入地址对页面进行访问了。因为整个程序看上去已经和一个WinForm的应用程序没什么区别了。 用户没有任何机会进入页面底层。  
      

  9.   


    那我直接输入action的地址也是可以直接访问阿··
      

  10.   

    把js部署在web-inf 下,用post提交表单,action只接受post的表单。
      

  11.   

    把jsp部署在web-inf 下,用post提交表单,action只接受post的表单。
      

  12.   

    把网页文件直接放在WEB-INF文件夹下,就不可以在地址栏输入相应地址去访问了。
    那面试的可能只要你说出这个简单的问 题而已。楼主想复杂了?
      

  13.   

    把页面直接放在WEB-INF文件下就可以了,或者你自己写个过滤器吧
      

  14.   

    这个问题严格来说是误解的,如果粗略的做就判断referer的来源,简单易行!
      

  15.   

    登录后系统弹出模态框作为主页面,禁用url,这样应该没法直接输入网址了吧
      

  16.   

    同意19楼 直接url访问都是get类型的 表单提交post就行
      

  17.   


    onclick, 获取href值创建form post...
      

  18.   

    比如你用servlet
    onPost()
    ...onGet() throws Exception
    {
       throw new Exception();
    }
      

  19.   

    在session中绑定User身份识别,不知道可不可以
      

  20.   

    将页面放到WEB-INF 下面 ,要求通过访问Servlet,然后forward到页面。简单一点就是做一个全局拦截器。 对
      

  21.   

    放到WEB-INF下面,然后用servlet或者配置struts.xml转进去。
      

  22.   

        如果是servlet链接,可以点击前一个页面的链接,通过request.setAttribute(.., ..)方法传递一个参数,然后页面上判断这个参数是否存在,如果不存在,就显示错误页面。
         如果是直接访问页面,参考前面的将页面放到WebRoot/WEB-INF/目录下面。
      

  23.   

    各种acton方法直接定位到jsp或其他页面即可!如果不想人看到链接。可以混淆一下加密。
      

  24.   

    1楼的说法在理呀!把jsp放到WEB-INF下面,只是阻止用户直接访问jsp,
    并不能阻止用户在地址栏输入url访问action,
    要想连这个也阻止了,像3楼说的那样是可以,
    但是程序中get提交的方式多了去了,你把<a href="xxx.action">转化为post,
    那么还有<iframe src="xxx.action"/>,window.open("xxx.action"),<image src=""xxx.action""/>
    等等,都转化为post提交总是不现实吧。或者说,离开了get提交,这网站还能做到完美嘛。
      

  25.   

    WEB-INF里边啊,里边的只能dispat ,redirect不行的  楼主试试
      

  26.   

    自己随便做个网页,然后在DIV里面模拟嵌入一个浏览器,搞定!
      

  27.   

    面试官的意图应该是通过判断referer是否是属于自己网站的,不仅可以简单的禁止直接输入地址,还可以禁止外部网站链接过来
      

  28.   

    判断下document.referrer的值以决定是否显示页面
      

  29.   

    不用参数判断,怎么判断你通过URL跳转过来的时候,这个URL是否符合你的要求。
      

  30.   

    在 后台,servlet实现过滤器 接口 Filter ,然后在其中判断是否登录 或者神马,如果不存在值,则强制 重定向 到某个 jsp页面
      

  31.   

    回复18楼:你输入的action,那是URL吗?
    统一资源定位符(URL,英语 Uniform / Universal Resource Locator 的缩写)也被称为网页地址,是因特网上标准的资源的地址(Address)。
    action不是资源地址吧?
      

  32.   

    超链接算吗?301跳转算吗?dispatch算吗?post算吗?
      

  33.   

    把 jsp 放到 WEB-INF 下, 限制提交方式的话可以试试用 过滤器 , 拦截器
      

  34.   

    <security-constraint>
                <web-resource-collection>
                    <web-resource-name>not allowed to access</web-resource-name>
                    <url-pattern>*.jsp</url-pattern>
                </web-resource-collection>
                <auth-constraint> 
                     <role-name>admin</role-name> 
                </auth-constraint> 
          </security-constraint>