做项目时需要考虑的安全性问题 转:
http://ningandjiao.iteye.com/blog/1848487
在开发一个项目的时候,大家经常会忽略项目的安全性问题,有很多的安全性问题其实就是一个意识的问题,解决起来并不复杂,但是因为这些疏忽,却可能会给我们的用户带来很大的风险。下面就列举一些在做项目的时候应该考虑的一些安全性问题。
密码保存
保存密码的第一准则是不能明文保存密码,之前CSDN密码泄露一事还记忆犹新。通常的做法是对密码进行不可逆加密,加密时不要使用MD5或者SHA系列的算法加密,现在对这两个算法的破解研究工作已经有了相当的进展。推荐使用bcrypt。
CI服务器的安全性
CI服务器和Build服务器经常是攻击者最完美的跳板,这些服务器几乎拥有你系统的所有权限(代码库,各个生产环境的访问权限等等)。请确保其安全。
校验客户端安全证书的“指纹”
当使用SSL时,我们需要验证安全证书的“指纹”来确认该证书是有目标网站颁发的证书,这可以有效防止“中间人攻击”漏洞。
随机生成密码
不要对所有账户设置同一个密码,一锅端就不好了,使用密码管理软件为每一个账户生成一个独立的密码。当前比较推荐的是1Password,期待有更好的密码管理软件诞生。
使用安全系数更高的随机数生成类库
要想得到真正的随机数是很困难的,尤其是要满足安全领域的随机数标准,语言自带的一般随机数生成算法很难满足需要,所以JDK还提供了SecuredRandom这样的类,Ruby中也有SecureRandom这样的模块。
总是使用HTTPS和HSTS
如无值得信服的理由,所有的请求都应该使用加密协议
不要使用“安全问题”找回密码
一个桶能装多少水是有最短的那块木板决定的,一个安全系统的安全性也是有最薄弱的环节决定的。不要让安全问题成为你的那块短木板。
不要限制密码长度
通过密码长度来保证安全性的时代已经结束了,让用户使用"Pass Phrases"是一个不错的主意。
允许对密码或者密码短语使用更直观的复杂度控制
使用更有效,直观的方法帮助用户增加密码或者密码短语的难度。而不是简单的必须有大小写,必须超过8位等这些生硬的条件。
避免缓冲溢出
在弱类型语言中,最常见的安全性问题就是缓冲溢出,这也是最常见的一种远程攻击方法,一般有四种防范方法: * 通过操作系统使得缓冲区不可执行,从而阻止攻击者植入攻击代码。 * 写正确的代码 * 利用编译器的边界检查来实现缓冲区的保护。 * 在程序指针失效前进行完整性检查
避免注入攻击
所有的用户输入必须经过验证和清理才能传递给下游,最常见的就是SQL注入攻击
避免跨站脚本攻击
系统需要保证用户不能在页面中嵌入未经验证的信息
避免泄露信息给第三方
目前很多系统倾向于泄露信息给第三方,比方说Google,Facebook,新浪微博等等。这些第三方会窃取很多用户信息。
设置数据清理策略
只在需要数据时才保存数据,数据生命周期结束就清理掉,贼是没办法偷你没有的东西的。
分享到:
相关推荐
1. **整体性思考**:无论是安全性还是易用性,都需要从软件的全局出发来考虑,不能仅仅关注某个局部或单一功能。 2. **全面考量**:设计时需要综合考虑系统架构、开发团队的技术能力和市场需求等因素。 3. **早期...
本文将围绕标题“选择仓库自动化项目需要考虑的四个问题”展开,深入探讨这四个关键问题。 一、业务需求分析 在选择仓库自动化项目之前,首要任务是对自身的业务需求进行详尽的分析。这包括了解仓库的存储容量、...
6. 保健食品毒理学安全性评价时应考虑的问题 评价中应考虑的问题包括产品的食用安全剂量、可能的代谢产物、长期摄入的安全性、潜在的致癌风险等,以确保产品不会对人体健康造成危害。 7. 日容许摄入量(ADI)的制定...
- 安全评估和检查:定期对试验项目的安全性进行评估和检查,及时发现和整改安全隐患。 - 环境保护与污染防治:在试验性项目中注重环境保护,制定相应的污染防治措施。 知识点五:地方性法规的试行意义 法规的试行...
公路项目安全性评价是确保道路交通安全的重要手段,它旨在通过评估公路设施在规划、研究、设计阶段及运营期可能存在的安全隐患,提前发现并采取措施避免交通事故的发生。这一过程借鉴了国际上的实践经验,特别是在20...
知识点:项目的环境安全性评估对项目的成功至关重要,需要考虑项目的环境影响和风险等因素。 14. 市场风险分析:本项目的市场风险分析表明,项目的实施将面临市场风险和挑战。 知识点:项目的市场风险分析对项目的...
《公路项目安全性评价指南》是...总的来说,《公路项目安全性评价指南》是保障公路建设和运营安全的重要工具,通过科学的评价方法,提前识别并解决可能影响行车安全的问题,以期实现公路交通的安全、高效和可持续发展。
在选择技术时,应考虑项目的长期需求、团队的技术背景以及社区支持等因素。 3. **代码质量问题**:缺乏规范的编码习惯可能导致代码难以理解和维护。实施代码审查、遵循编程规范、使用静态代码分析工具可以帮助提高...
项目实施需要考虑企业的需求、网络安全性、稳定性、可扩展性等因素。项目实施的目的是确保整个网络系统的稳定运行,满足企业的需求。 大型企业网络设计的关键技术 大型企业网络设计需要考虑多种技术,包括网络架构...
6. 法律和规范要求(Legal requirements on automotive on-board networks)也是EVITA项目考虑的一部分。项目组需要确保他们开发的解决方案符合现行的汽车网络安全相关法律和标准。 7. 项目的最终成果以及研究成果...
【标题】:“飞机起落架机构设计及安全性分析”是一个典型的机械工程领域的毕业设计项目,主要涉及的内容是对飞机起落架的结构设计及其在实际应用中的安全性进行深入研究。起落架作为飞机的重要组成部分,其设计直接...
分布式光伏发电项目建设涉及多个环节,其安全管理在项目整体实施过程中至关重要。以下将详细介绍安全管理研究中...通过细致的研究与实施这些预控措施,可以大幅提高光伏发电项目的整体安全性,为行业发展奠定坚实基础。
在讨论危险化学品项目设立审查中选址的问题时,我们首先需要明确,审查的核心目的是确保项目选址的安全性,预防因危险化学品可能引发的事故和风险,以及将对周围环境和居民生活的影响降到最低。在这一过程中,有几个...
SDL是一种结构化的方法,旨在将安全性的考虑融入到软件开发的所有阶段,从而减少安全漏洞和缺陷的数量,并在软件发布之前发现并解决它们。 首先,安全开发流程强调了在整个软件开发周期中持续关注安全问题。这包括...
网吧网络设计需要考虑到安全性和保密性,确保网吧网络的安全性和保密性。 5. 可扩展性和易维护性 网吧网络设计需要考虑到可扩展性和易维护性,确保网吧网络的可扩展性和易维护性。 现有网吧存在的问题: 1. 网络...
软件项目管理三级项目智能停车系统 智能停车系统是软件项目管理三级项目的重要组成部分。...同时,该系统还需要考虑到安全性和可扩展性等方面的要求,确保用户的数据安全和隐私,满足未来停车场的需求和发展。
项目经理还应确保所有特种工持证上岗,提高普通工的培训和取证比例,以提高整体操作的安全性。最后,项目经理应推动创建安全文明的施工现场,改善工人的工作环境和生活卫生条件,提升整体工作满意度。 考核表的最后...
这份考核表旨在确保财务部门在处理工程项目资金时,充分考虑到安全生产的各项要素,保障工程的顺利进行和员工的安全。 1. 安全技术措施经费的优先考虑:考核的第一个要点是财务人员是否能根据项目的实际需求和安全...
为了增强安全性,开发者可能会采用时间戳、动态密钥交换等技术,使得验证过程更加动态和安全。 安全方面,项目资料可能涵盖如何加密和混淆机器码,以防止破解者直接读取或修改。加密可以使用对称或非对称加密算法,...