首页 > Java > java教程 > 正文

java在web开发安全性方面的总结

怪我咯
发布: 2017-06-25 10:22:06
原创
2775人浏览过

1.       客户输入的原始数据进行校验不依赖于script。虽然javascript等等的客户端的输入数据的校验即使比较方便也不能使用因为安全性方面的原因。脚本是不安全的,用户可能屏蔽脚本,我们可以将用户数据送入服务器端,在服务器上验证字符串的合法性。

2.       HTML的输入标识符中去除所有输入的尖括号'<' ' >',

3.       HTML埋进数据的时候有一定HTML编码('<' '>' '和' '"' ' ' ' →'是<' '>' '是μ"' ' &39;'的换每隔)了。(2)(3)由cross-site scripting(css)引起的,解决方法是避免脚本符号的出现。

 URLで許可される文字

 英数字「;」「/」「?」「:」「@」「&」「=」「+」「$」「,」「-」「_」「.」「!」「~」「*」「'」「(」「)」「%」

立即学习Java免费学习笔记(深入)”;

4.       需要保护的全部的网页要有用户认证机构。

登入后,把userID保存下来在SESSION中,在每个需要保护的页面追加脚本进行验证,如果session空,则验证失败,从新登陆。

<%
If Len(Session("ID")) = 0 Then
Response.Redirect "index.html"
End If
%>
登录后复制

下列信息做特殊处理:

*密码

*Web邮件的邮件内容等等的个人用数据

*名字 年龄、住所的个人信息

*Web应用系统内部的数据构造

*Web服务器内部的最大限度定期票等等的各种系统信息   

→[1-3.]

5.       事前可以推断的sessionID不能定义, →[1-3.]

6.       关键的重要的数据参数发送时不要出现在URL中

利用post传递参数。并且对策:

*根据SSL的密码化通信

*干扰策略。

*对话期间劫机对策

7.       hidden字段的数据不能修改传递(hidden的值不能被显示,但是会被传递并且在html源文件中可以查看值,防止其值被修改并传递)不要用hidden去取数据,改善方法是可以利用session来保存hidden数据 →[1-5.]

8.       从WWW 浏览器被发送了的<SELECT> 的<OPTION>项的值,radio项的值,checkbox项的值都要进行校验,对于上述控件提交上来的数据开数据库查询是否合法。 →[1-6.]

 v18.5.30投票评选网站管理系统
v18.5.30投票评选网站管理系统

宁志投票评选网站管理系统一套专为活动投票专题建站首选的信息网站管理系统,风格宽频页面十分大方,宁志网站管理系统是国内知名建站软件,它由技术人员开发好了的一种现成建站软件,主要为全国各地方自助建站提供方便。 特点:安全、稳定、美观、实用、易操作。NZCMS开发结构采用ASP+ACCESS/MSSQL开发,运行高效的运行性能以及良好的可维护性,在近几年来吸引了众多国内机关单位的使用与推动:由于有众多支

 v18.5.30投票评选网站管理系统 119
查看详情  v18.5.30投票评选网站管理系统

9.       写SQL的时候与变量结合写。要先check再提交(对用户提交的变量在放入SQL文之前先过滤) →[2-1.]

10.   组装SQL的时候输入数据的 (')和分号 ( ; ) 要进行处理。原因同9) →[2-1.]

11.   不要在脚本中嵌入数据库的密码。关于敏感数据的设置,可以设置在配置文件中,windows可以设置在注册表中。 →[2-2.]

12.   存取数据库时用户的权限分开设置。不同的用户权限是不同的,可以借助数据库的权限设置来实现,这样有利于安全性的提高。 →[2-3.]

13.   Java类包的导入。只导入需要的类,不使用的包和类不要导入,这样做有利于提高安全性,防止他人利用多余的类取得信息,尤其是几个敏感的类包 →[3-1.]

14.   利用安全政策文件(policy)设定来控制文件的运行权限。

文件路径:${java.home}/lib/security/java.policy

package org.penglee.policy.test;
//permission java.io.FilePermission "c://winnt//system32//notepad.exe", "execute";
import java.io.IOException;
 
public class NoSecurityManager {
         public static void main(String[] args) {
//                     SecurityManager mySecurityManager = new SecurityManager ();
//                     System.setSecurityManager (mySecurityManager);
                       try {
                                     Runtime myRuntime = Runtime.getRuntime ();
                                     myRuntime.exec ("c://winnt//system32//notepad.exe");
                       } catch (IOException e) {
                                     e.printStackTrace();
                       }
         }
}
登录后复制

→[3-1.]

15.   设置为私有类(private)来加以限制类中数据的修改,或者定义接口来实现。 →[3-2.]

16.   程序序列化后的数据是没有加密的,防止利用序列化后的数据读取敏感数据,可以利用transient来处理序列化的数据。→[3-3.]

17.   除明显地需要继承的类之外一律使用final类。这样可以防止利用继承来获取敏感信息。→[3-4.]

18.   利用AssertionError来抛错。详细参考该类的api文档→[3-5.]

19.   注意线程同步产生的数据不一致问题,增加数据的安全性。→[3-6.]

20.   输入中避免含有相对相对路径。含有相对路径时报错。原因可能导致兄弟文件夹被访问。→[4-1.]

 

26. 极力避免明文密码。敏感数据最好要加密,建议使用sha加密→[9-1.]

27. 用sha加密。→[9-1.]

28.29.利用程序检验路径(防止相对路径)检查文件名以及数据的安全性,含有特殊字符报错。→[9-2.]

30.31. 为了不让教多了十分小心地正在做登录时的错误信息弄错什么了。面向用户的错误信息不应该给的太足,以免用户由此推断出程序的内部结构的相关信息。→[9-3.]

32. 尽量小做需要特权的使用的数据处理的部分、 极力避开一般的数据处理用特权流行被实行了。使用权限较小的用户名来登录,尽量避开用特殊权限来处理一般数据。→[9-4.]

以上就是 java在web开发安全性方面的总结的详细内容,更多请关注php中文网其它相关文章!

相关标签:
java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号