安全

  1、在网上有很多关于安全的文章,但是 《OWASP开发指南》 涵盖了几乎所有关于Web站点安全的东西。(OWASP(开放Web应用安全项目- Open Web Application Security Project)是一个开放的非营利性组织,目前全球有130个分会近万名会员,其主要目标是研议协助解决Web软体安全之标准、工具与技术文件,长期 致力于协助政府或企业了解并改善网页应用程式与网页服务的安全性。OWASP被视为Web应用安全领域的权威参考。2009年下列发布的美国和国际立法、标准、准则、委员会和行业实务守则参考引用了OWASP。美国联邦贸易委员会(FTC)强烈建议所有企业需遵循OWASP十大WEB弱点防护守则。

  2、了解什么是 SQL 注入攻击 并知道怎么阻止这种攻击。

  3、永远不要相信用户的输入(包括Cookies,因为那也是用户的输入)

  4、对用户的口令进行Hash,并使用salt,以防止Rainbow 攻击。使用慢一点的Hash算法来保存口令,如 bcrypt (被时间检证过了) 或是 scrypt (更强,但是也更新一些) (1, 2)。你可以阅读一下 How To Safely Store A Password。The NIST建议使用 PBKDF2 to hash passwords, 并且FIPS approved in .NET(具体什么意思我还是不太清楚,大家可以看这里的介绍here)。避免直接使用MD5 或 SHA。

  5、不要试图自己去发明或创造一个自己的fancy的认证系统,你可能会忽略到一些不容易让你查觉的东西而导致你的站点被hack了。(陈皓注:我在腾讯那坑爹的申诉系统中说过这个事了,我说过这句话——“真正的安全系统是协同整个社会的安全系统做出来的一道安全长城,而不是什么都要自己搞”,当然,很遗憾不是所有的人都能看懂这个事,包括一些的人)

  6、了解 处理信用卡的一些规则. (这里也有一个问题你可以查看一下) (有两上vendor可以帮助你,一个是 Authorize.Net 另一个是 PayFlow Pro)

  7、使用 SSL/HTTPS 来加密传输登录页面或是任可有敏感信息的页面,比如信用卡号等。

  8、知道如何对付session 劫持。(请参看wikipedia的这Session Hijacking,)

  9、避免 跨站脚本攻击(XSS)。

  10、避免 跨站伪造请求攻击 cross site request forgeries (XSRF).

  11、保持你的系统里的所有软件更新到新的patch。

  12、确保你的数据库连接是安全的。

  13、确保你能了解新的攻击技术,以及你系统的脆弱处。

  14、阅读Google的《浏览器安全手册》(Browser Security Handbook)。

  15、阅读《网络软件的黑客手册》(The Web Application Hackers Handbook)。