课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
对于程序员来说,我们除了需要了解不同编程开发语言的安全管理方法以外,同时我们也需要建立管理员账户来进行安全维护,下面我们就一起来了解一下具体情况吧。
1.使用良好资源
从安全编码入门资源开始。开放网络应用安全计划(OWASP)是安全编码实际上的入门资源。其安全编码“快速参考指南”是个极好的起始点,可作为开发过程中的复核工具使用。放心充分利用他们的资源。
2.采用防御性编程技巧
这么做可以一定程度上避免出现可利用漏洞。其中一招是等价比较:把常量放到比较语句的前端。常量前置的话,如果不小心把比较操作符(两个等号“==”)误敲成赋值操作符(一个等号“=”),在编译或运行时阶段就会报错。
3.清洗数据
数字身份,尤其是消费级数字身份系统,往往会调用外部数据源。来自外部源或由用户提供的所有数据都应该被当成不可信的。对Web客户端来说,这些数据包括从查询字符串或散列参数、cookie、本地存储等等获取的数据;对服务器端应用来说,这些数据包含通过POST、GET、cookie等等提交的数据。原生应用常会读取配置文件,而这些配置文件有可能被故意篡改。
无论如何,一道防线都是数据清洗:确保数据中仅含有经允许的字符/格式。其中一个重点是检查大数据域长度,避免缓冲区溢出攻击。
数字身份平台安全检查的另一个重要领域是图片上传。随着证件照片的存储和共享越来越广泛,IAM和CIAM服务也变得越来越重要。用户上传照片之类的文件上传行为可能会特别危险,必须严格检查以确保文件真的只是单纯的图片而没有隐藏的可执行内容。
4.筛查
文档和其他文件存储是数字身份生态系统的重要部分。放到存储中的所有数据都必须经过可执行内容筛查。筛查过程无关底层数据库技术。比如说,虽然非SQL数据库对SQL注入攻击免疫,但仍有自身弱点,仍然要经过筛查。
5.过滤
类似的,不应直接接受外部命令字符串。应设置过滤器,总是检查命令是否有效且适用于相应上下文。
6.防止未经验证的代码执行
避免使用eval()类函数,因为此类函数允许未经验证的代码执行。内嵌eval()函数的函数也不应采用,比如JavaScript的SetTimer()。
7.弹性为王
开发面向消费者的数字身份服务往往意味着需要覆盖大量用户。你得允许各种各样的值。应用开发编程的时候要考虑弹性,这样才能在外部数据值超出预期范围或类型时不会发生故障或允许代码注入。良好的单元测试或功能测试通常能检测出此类问题。
8.谨慎使用开源代码
产品中引入新版开源代码有可能同时引入了恶意软件。使用开源代码包时,好在包管理器中设置特定版本号,以免误用未经验证的版本。编译过程应包含对所有外部文件的散列检查。
9.错误响应
错误响应是数字身份服务的关键部分,因为可以告知用户问题点并改善可用性。然而,这一功能也可能被恶意黑客用于摸清系统行为。要确保错误响应动作不会向攻击者泄露信息。客户端-服务器错误响应应仅包含知会用户的少信息,而不是协助攻击者窥探应用。
10.审计日志
如果攻击确实发生了,你会想要知道到底结果如何以及确保攻击事件可以复现。但日志记录需有效,用无意义的审计数据填充日志可能会适得其反。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!