设为首页 收藏本站
查看: 1144|回复: 0

[新闻资讯] 小猿圈Web安全之Java应用

[复制链接]
累计签到:3 天
连续签到:3 天
发表于 2019-7-11 18:34:03 | 显示全部楼层 |阅读模式
互联网发展到现在真的是更新迭代好多次,从最开始的iOS、安卓到现在的java、python、linux、区块链、web安全,发生了巨大的改变,技术不断的更新、发展迅速,小猿圈web安全老师今天就给大家分享一个知识点Web安全之Java应用,希望对你的学习有所帮助。



场景
1、控制访问的权限。只让可以访问的访问到最小的资源和权限。
2、控制输入内容。所有输入都可能是不安全的,所以要过滤。
3、保证业务的安全。
4、保证数据的安全性。
5、控制输出内容。要过滤输出的内容,解决浏览器安全问题。
解决问题
输入和输出的很多问题,都可以通过Aop的思想来统一解决。尽量让应用的问题都通过架构去实现,以避免因为开发人员因素,而且对正常业务是透明、不可见的。
人为的因素,需要有代码评审流程,甚至需要安全的软件构建流程去规避。
应用安全
1、千万不要用root!!!启动程序。
2、运行的用户不允许对源代码有修改的权限。
3、需要有新文件生成的目录(比如文件上传,动态代理等),不能有执行的权限。
4、不允许用户访问目录。基于tomcat来说,把所有的视图文件(jsp、ftl等)放到WEB-INF下。webapp下不直接放任何文件。
控制输入内容
用户所有的输入,都可以认为是不安全的。千!万!不!要!以为用户的输入是合法的。要采取防御式的方式去处理应用。确保应用的安全。一般我们提倡的是:防御式架构和防御式编程。
控制http参数
1、千万不要乱用数据类型。使用基本数据类型,少用包装类。包装类容易被攻击。不要用String去接受所有类型数据。原则上:是什么类型就用什么类型去接收。
2、通过架构设计,添加一层设置处理http参数(验证数据的类型、合法性、长度和范围)。一般都是通过aop来实现。比如:对邮件、手机的验证,对非法数字(小于0)的验证,对整数最大值的验证,对字符串最大长度的验证等。
文件上传
1、控制文件类型,通过后缀控制。上传文件的后缀要使用白名单,不要使用黑名单。只允许我们知道的文件类型上传。这样能确保安全性。
2、控制文件的大小。文件大小必须控制,否则容易出现系统硬盘资源被吃满。
3、上传的文件要压缩。这样就算里面有攻击的代码也会被破坏掉。
4、上传的文件名要随机、而且没有规律。可以考虑uuid。否则容易被猜测,然后把文件拖走。
sql注入
1、通过框架的参数化去解决。
2、要有严格的规范以及日常的代码评审。人为的因素,往往是很多安全问题的罪魁祸首。
3、要严格规划应用对数据库操作的用户。只允许有查看和修改数据的权限。就算是出了安全问题,也能把问题减少到最低,比如:至少避免被攻击者直接drop database.
html注入
通过架构的方法,净化。实现思路aop。
在http到执行方法前,把标签净化掉。如果确实有需要富文本的地方,一定也要使用白名单的方式,只允许少数合法标签,其他的也全部净化。
Java有一个开发框架是:Anti-Samy,或者自己通过正则来实现。
数据敏感词
通过架构的方法,分词、词库去解决。实现思路aop。
可以根据敏感的程序来判断处理机制。
如果程度一般,则可以通过**来替换。
如果程度太高,涉及黄或者国家安全等,则可以拒绝输入。
保证业务的安全
每一个业务都要考虑是不安全的。然后都应该有对应的处理机制。
防止暴力破解
暴力破解是一种非常容易被忽视的安全问题。
这种问题的解决思路:
1、提升密码复杂度。太简单的密码要拒绝。
2、记录验证频率。超过这个频率就拒绝。
比如:登录,短信验证码,支付密码等用户核心安全业务。
不安全的直接对象引用
不安全的直接对象引用 ,即访问不属于自己的业务。
在业务设计的时候要明确哪些是允许其他用户访问的,其他的都不允许访问。还是根据最小原则来处理。
比如:不访问访问别人的订单信息。
不要信任用户输入的数据
重要的信息,千万不能通过让用户传输过来。千万不能自认为这些用户不会输入啊,都是我们设置好的。
比如:订单的金额,是否有操作的权限等。
严格的权限控制
水平权限控制。用户是否有操作业务的操作。比如,用户对应的角色和身份不允许访问指定的业务。
垂直权限控制。用户是否按指定的业务流程操作。比如,在一些流程过程中需要先有合同才能进货,在一些流程中需要先填写个人信息才能使用后面的功能。
保证数据的安全
互联网的时代,数据也是极为重要的资源。
不可以预见性
对于重要资源,要随机性,要不然容易被测试到规则,全部拖走。
比如用户外页信息 /home/x.html。这里的x用的是数字。
控制资源访问的频率
比如,只允许同一个ip访问100次每天。这个规则,可以根据产品或者运营来共同制定。实现思路:通过aop
记录数据操作记录
重要的信息操作的时候,要有记录。实现思路:通过aop。
控制输出内容
输出的内容确保是干净的,对用户不会有危险的。同时也不会泄露服务器的信息。
过滤敏感信息
1、把代码的注释去除。通过aop实现。
2、拒绝服务器相关的信息,比如ip。这个需要在代码评审的时候核实。不能有3、任何硬编码泄露服务器信息的地方。
异常不要说的太明确。每个异常都是要处理的。如果不清楚的异常,提示模糊信息即可,然后把明确的信息记录到日志。 通过aop实现
验证方法
1、通过ibm appscan工具验证。能解决常见的安全问题
2、目录遍历。御剑。
3、web后台暴力破解。httprint。
最后想要了解更多关于web安全开发方面内容的小伙伴,请关注小猿圈让你快速掌握web安全从入门到精通开发实战技能。以上就是小猿圈老师给大家分享的文章,希望对小伙伴们有所帮助。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-939531-1-1.html 上篇帖子: 小猿圈解析Web安全学习路线 下篇帖子: 小猿圈Web安全教程之web安全测试基础
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表