问题描述
我在用SPRING,STRUNTS,IBATIS框架做WEB的时候,发现虽然我用post提交登录的时候能成功,但我直接在浏览器用http://127.0.0.1/login?user=abc&password=123也能成功问下,如何只能post提交我是用getset来获取表单值
解决方案
解决方案二:
把你登录表单的代码贴出来看看
解决方案三:
<formname="form1"method="post"action="login"><span>用户名</span><inputname="user"type="text"> <span>密码</span><inputname="password"type="password"><inputtype="submit"class="button2"value="登录"maxlength="16"></form>
解决方案四:
你用的是struts1的话在action里面把get方法当中调用post方法的语句去掉设成空它就不会调用get了
解决方案五:
有人帮助下马
解决方案六:
用的是struts2
解决方案七:
struts2就要去struts-default里面找了看看你的execute继承的那个方法里面有关getpost的描述改就行了。。不过一般不影响吧?
解决方案八:
话说。。。直接在浏览器地址输入正确的用户名和密码跳转成功,这很正常吧。
解决方案九:
用的是struts2吧,这个正常的,你在action中定义了参数user和password,当你在地址栏敲该地址的时候程序并没有走你的form1,而是直接把这两个参数的值赋给了action,并且直接调用了action,和你的form表单的提交方式是没有任何关系的
解决方案十:
像这种情况就要考虑到URL安全问题,你需要处理直接通过URL访问应用程序的拦截器,也就是过滤URL地址,保证系统安全
解决方案十一:
引用8楼tntsuifeng的回复:
用的是struts2吧,这个正常的,你在action中定义了参数user和password,当你在地址栏敲该地址的时候程序并没有走你的form1,而是直接把这两个参数的值赋给了action,并且直接调用了action,和你的form表单的提交方式是没有任何关系的
+1
解决方案十二:
引用9楼liangfengsoftware的回复:
像这种情况就要考虑到URL安全问题,你需要处理直接通过URL访问应用程序的拦截器,也就是过滤URL地址,保证系统安全
+1
解决方案十三:
引用楼主greatdomino的回复:
我在用SPRING,STRUNTS,IBATIS框架做WEB的时候,发现虽然我用post提交登录的时候能成功,但我直接在浏览器用http://127.0.0.1/login?user=abc&password=123也能成功问下,如何只能post提交我是用getset来获取表单值
1.是安全性考虑2.参数为中文时容易乱码需要转码操作
解决方案十四:
不同的framework,还有不同的j2ee版本,有不同的解决方案:比如加filter,配置成只映射LoginAction,而且咋代码中判断只针对GET请求(如下)。甚至如果用apache的话,还能直接配置apacheurlrewrite:login请求,如果querystring中有password,直接去错误页面。if("GET".equals(request.getMethod())){//出错,返回警告页面}
解决方案十五:
用filter,对url的合法性进行检查。
解决方案:
查看获取的方式request.getMethod()