为了账号安全,请及时绑定邮箱和手机立即绑定

【干货】web中关于设计、开发、安全、性能注意事项(1)

标签:
设计 安全
    想想自己工作有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人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消