序
想想自己工作有1年多了(还是个小渣渣),一年多的时间里,通过和别人讨论、请教、借鉴还有自己平常的总结,总算也总结了不少东西,闲来无事记录一下,仅供初学者参考学习,有不对的地方, 望各位上仙手下留情、同时也希望各位上仙能就不对的地方指点一二,感激不尽!!
入题:
1. XXS攻击
XSS攻击即跨站脚本攻击(Cross Site Scripting) 它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
XXS防御措施:
a、 可以做Filter过滤器过滤特殊字符。
b、 不要在页面中插入任何不可信数据。
c、 在将不可信数据插入到HTML标签之间时,对这些数据进行HTML Entity编码。
d、 在将不可信数据插入到HTML属性里时,对这些数据进行HTML属性编码。
e、 在将不可信数据插入到SCRIPT里时,对这些数据进行SCRIPT编码。
f、 在将不可信数据插入到Style属性里时,对这些数据进行CSS编码。
g、 在将不可信数据插入到HTML URL里时,对这些数据进行URL编码。
h、 使用富文本时,使用XSS规则引擎进行编码过滤。
2. 数据校验
页面js和后台代码双重校验,因为Javascript是很容易被绕过。我们在做开发的时候要时刻记住一点:**用户输入的任何东西都是不可信的。**对一般用户只需前台校验就可避免不规则的内容,但针对某些特定用户,出于安全性考虑,那么就需要前后台的双向校验。
可能有人会问,那直接用后台校验不就行了么?为什么还要前台js校验呢?其实,说简单点就是js前台校验为的是提升用户体验度,因为后台校验就需要访问后台服务器,这就有了很多不确定因素:网速、性能等等。不利于用户体验,现在不都提倡提升用户体验么。。
3. 适度使用Session
尽量不要在Session里放很大的**集合对象**,以免内存消耗过大,因为很多用户访问的时候会产生很多的Session。参数传递应该尽量通过Request。
4. 慎用异常
异常只能用于错误处理,不应该用来控制程序流程。异常对性能不利。java中抛出异常首先要创建一个新的对象。Throwable接口的构造函数调用名为fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法检查堆栈,收集调用跟踪信息。只要有异常被抛出,VM就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。所以说,在程序中频繁的使用try{...}catch(xx){..}会消耗掉大部分时间和空间,以至于影响系统的性能。再次强调:异常只能用于错误处理,不应该用来控制程序流程。
5. mvc 分层模式引用
a、尽量减少service方法调用service,一是逻辑嵌套不容易扩展,后期代码维护困难;二是涉及到事物嵌套问题。
b、jsp中禁止出现java代码。
c、action尽量只负责业务逻辑的组装或者说只负责从视图读取数据,控制用户输入,并向模型发送数据,业务操作和数据封装在service层操作。
今天就到这儿...未完待续...
点击查看更多内容
24人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦