关于直播网站的搭建--第二步:关于非法请求的拦截
2017-10-09 16:10
405 查看
尝试过netty搭建一个聊天室,但是后面综合了一下,还是使用websocket来搭建聊天室,websocket的优势,没有过多了解,但是个人在使用过程中,感觉websocket对于客户端和服务端的通信有着十分良好的支持。本来打算写写过程的,但是想起了自己已经做了笔记了,就不多做赘述了。
我的请求都是以do结尾。。。
然后url请求就会转发到我们的过滤器中了
return true就继续转发请求,不然就拦截了下来了,这样一来,可以有效的防止sql注入之类的问题
这里想写写接收前端请求的时候,对于非法请求参数的拦截。
首先,我的工程项目是以ssm框架为主,前端ajax异步向后台发送请求的时候,在工程的web.xml加入拦截器,拦截所有向后台请求的地址<filter> <filter-name>IllegalCharacterFilter</filter-name> <filter-class>com.zzx.sys.control.filter.IllegalCharacterFilter</filter-class> </filter>
<filter-mapping> <filter-name>IllegalCharacterFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>
我的请求都是以do结尾。。。
然后url请求就会转发到我们的过滤器中了
/** * 非法字符判断过滤器 * @author zzxin9 * */ public class IllegalCharacterFilter implements Filter { private static String IllegalChars = ""; @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req=(HttpServletRequest)request; HttpServletResponse res=(HttpServletResponse)response; //获得所有请求参数名 Enumeration params = req.getParameterNames(); String sql = ""; while (params.hasMoreElements()) { //得到参数名 String name = params.nextElement().toString(); if(isNumber(n 4000 ame)){ continue; } //得到参数对应值 String[] value = req.getParameterValues(name); for (int i = 0; i < value.length; i++) { sql = sql + value[i]; } } if (sqlValidate(sql)) { Result result = new Result(); result.setCode(1); result.setMessage("请求参数中含有非法字符"); JsonUtil.outputJson(res, result); } else { chain.doFilter(request,response); } } public boolean isNumber(String name){ char[] charArray = name.toCharArray(); for(int i=0;i<charArray.length;i++){ if(!Character.isDigit(charArray[i])){ return false; } } return true; } @Override public void init(FilterConfig config) throws ServletException { IllegalChars = PropsUtil.getProperty("IllegalChars"); } //效验 protected static boolean sqlValidate(String str) { str = str.toLowerCase();//统一转为小写 if(IllegalChars!=null&&!"".equals(IllegalChars)){ String[] badStrs = IllegalChars.split("\\|"); for (int i = 0; i < badStrs.length; i++) { if (str.indexOf(badStrs[i]) >= 0) { return true; } } } return false; } }
return true就继续转发请求,不然就拦截了下来了,这样一来,可以有效的防止sql注入之类的问题
相关文章推荐
- 关于直播网站的搭建--第一步:获取直播源
- python爬虫(上)--请求——关于旅游网站的酒店评论爬取(传参方法)
- 快速搭建linux下视频点播,直播网站。
- 如何在自己网站加上视频直播功能(搭建视频直播网站)
- 关于某些网站的图片盗链功能,相关http 请求的解决方法
- 网站搭建 html 页面 ajax 请求 asp.net页面
- 关于webView拦截H5网络请求数据,替换本地数据问题
- 如何在自己网站加上视频直播功能(搭建视频直播网站)
- 实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建及配置详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解
- 突然的想法--关于搭建网站
- 购物网站16-2:权限action-----AOP拦截----自定义注解----权限组分页列表----权限组管理----权限请求处理器
- IIS发布网站部分特殊配置--图片上传至别的服务器、iis配置 通配符应用程序映、iis配置 C#底层拦截.htm文件请求
- 关于搭建一个高性能网站的服务器的架设思路以及nginx测试的并发
- 关于cas-client单点登录客户端拦截请求和忽略/排除不需要拦截的请求URL的问题(不需要修改任何代码,只需要一个配置)
- [原创]关于comsenz 公司 系列论坛类型开源网站搭建的心得
- IIS发布网站部分特殊配置--图片上传至别的服务器、iis配置 通配符应用程序映、iis配置 C#底层拦截.htm文件请求
- 过滤器 拦截非法的url请求
- 俺网站Android及Ophone开发,全系列上手资料,关于环境搭建遇见的一些问题,包1天能上手。
- struts2过滤器与拦截器组合使用,过滤拦截非法请求
- 关于如何使用动态域名在个人电脑搭建个人网站的几点经验