如何防止xss攻击

前言 上一篇说到了何为xss攻击,以及xss攻击的分为三类,存储型xss和反射型xss,以及dom型xss。 由于xss的原理是恶意代码在浏览器执行导致。所以对xss防范的核心理念就是让恶意代码不可执行。其手段有二: 1,过滤输入 2,转义输出 过滤输入(Filtering for XSS) 过滤输入就是输入中的可执行代码标记,比如特殊符号及字样(()<>& script)过滤到,将其去除,或替换成无威胁的字符。 对于基于web的java应用, »

Filter 和 HandlerInterceptor 以及Spring AOP的异同

相同点 都能将某些横切代码提炼出来,然后通过拦截的方式,添加到被拦截的方法或请求,从而降低代码耦合度和复杂度。 其中Filter和Spring的HandlerInterceptor设计思想相同,都是通过链式的方式。即将一组Filter或者HandlerInterceptor定义好,放在配置文件中,然后通过容器加载,然后顺序调度。Filter的容器是Tomcat,HandlerInterceptor的容器是Spring。 同时Filter和HandlerInterceptor都是针对web请求拦截处理 不同点 Filter更原生,基于Servlet框架即可实现 HandlerInterceptor基于Spring,需要Spring MVC Framework的支持 Spring AOP,基于AspectJ,典型的面向切面编程,他不局限于Web应用, »

Servlet Filter工作原理

前言 本文主要探讨Filter的链式处理结构,不会过多赘述Filter的基本功能。 Filter的链式结构 一直一来,我对多个filter如何能够实现链式处理的结构很好奇。大体说来,假若Filter A处理完后,可以将request和response交由后续的Filter B处理,这很像责任链模式(Chain of Responsibility Pattern)。但实际上它不是,而是采用类似注册查找的方式。 一个filter的核心方法为dofilter,其核心结构为: public void doFilter(ServletRequest req, ServletResponse »