Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

从京东被拖库谈程序员的安全意识 #61

Open
calidion opened this issue Dec 11, 2016 · 0 comments
Open

从京东被拖库谈程序员的安全意识 #61

calidion opened this issue Dec 11, 2016 · 0 comments

Comments

@calidion
Copy link
Owner

calidion commented Dec 11, 2016

由于系统的安全漏洞造成的服务器被攻击事件已经越来越成为大公司的安全隐患。而这类攻击要么是隐藏的很好的黑客,要么是安全公司,而这类安全公司通常又有很好的保护伞,即使是大的互联网公司通常也不见得有办法去很好的处理这类攻击。
所以作为开发人员我们应该如何加强自己的安全意识呢?

关注框架的安全漏洞

首先就是要注意自己的框架的安全漏洞信息,大部分的攻击来源于服务器环境的漏洞,并且这类漏洞是造成程序被入侵的最根本原因。
所以通常一个大网站,应试定制自己的系统,并且是闭源的,这样才能有效的防止因为公开的漏洞而被攻击。

隐藏自己服务器信息

通用服务器会报自己的服务器名,版本信息,这些信息对于调试通常是有用的,但是同时也给黑客以可乘之机。所以通常我们要隐藏服务器的版本信息与服务器类似。比如
Server: Apache/2.2
Server: nginx/2.1
之类的。

加强数据输入的检验

除了服务器与环境本身的安全问题之外,最常见的就是利用数据输入的漏洞来获得源程序与数据库权限的。从而达到获取服务器最高权限的目标。

  1. 对输入进行编码
    所以通常我们可以将输入文本数据进行转码,让他变成安全的文本,比如进行URLencode或者BASE64,这样的文本在插入数据库的过程中就会非常的安全。
  2. 对输入进行过滤
    对于一些场,为了更高的安全,我们要对数据进行过滤。比如博客系统中,不能允许添加js脚本,不能添加url链接等。
  3. 对数据的长度与类型进行检验
    比如对于密码,要规定必须达到某种长度才行。对于email要完整的检验。等等。。

加强密码安全

1、使用明文存储是可耻的

前阵子CSDN被曝库,竟然是明文,真是程序员界的耻辱。这样的网站能称为是程序员的网站吗?不关门都对不起程序员这个称呼。

2、使用sha1,sha2更加安全的加密形式

md5由于使用过于广泛,再加已经有了碰撞生成器,所以使用MD5已经不安全了。应该让所有的新用户使用尚没有被找到碰撞的sha1,sha2等算法。

3、 加盐

对于密码来说,加上盐,可以增加组合可能性。从而增加破解密码的难度。

对核心隐私信息进行加密

从京东被暴的库来看,缺少对核心隐藏信息的保护,一旦被曝库。黑客将会很容易的获得用户的信息,而如果京东对这个隐私信息进行加密,并且在黑客没有获取到这个加密算法时,是无法解密这些用户信息的,从而可以很好的保护网站用户的信息。

小结

安全是广泛的概念,上面的内容也是相对比较宽泛的讨论。具体细节可能会有很多,但是对于程序员来讲,做好起上的安全审察,会大大的加强程序的安全性。可以更好的保护用户的信息安全。

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant