赞
踩
(其实说白了就类似于 SQL 注入,只不过一个是针对数据库,一个是针对 HTML )
通过你提交的数据,实现反射型 XSS 可以比较容易地修改用户数据、窃取用户信息。
- <%String name= request.getParameter("username"); %>
- 姓名: <%= name%>
错误示例:传入参数对象,不管参数对象有用没用全部返回
- @ResponseBody
- @RequestMapping(value = "getMap")
- public Map getMap(Map map){
- // xxxx 业务逻辑
- return map;
- }
正确示例:传入参数对象,返回可用参数
- @ResponseBody
- @RequestMapping(value = "getMap")
- public Map getMap(Map map){
- // xxxx 业务逻辑
- Map m = new Map()
- m.set(xxxx);
- m.set(xxxx);
- return m;
- }
或者对后台传入参数进行代码过滤(简写的过滤方法)
- @ResponseBody
- @RequestMapping(value = "getMap")
- public Map getMap(String str){
- Map map = new Map();
- // xxxx 业务逻辑
- Pattern p_script;
- Matcher m_script;
- String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; //定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script> }
- p_script = Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE);
- m_script = p_script.matcher(str);
- str = m_script.replaceAll(""); //过滤script标签
- // 业务逻辑
- map.setxxxx(str);
- return map;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。