天天看点

白帽子讲web安全之安全原则(一)安全原则

安全原则

(一)白名单原则:当使用了黑名单原则后可能会造成权限绕过,应该使用白名单原则。

例如:以后浏览器更新了新的html标签,黑名单中没有,那么可能就会造成安全隐患

(二)最小权限原则:

按需赋予权限,按需上调(类似灰度发布模型)

(三)纵深防御原则:

1,从多个角度去设计安全方案。2,在正确的地方做正确的事。

0x01:在多维层面设计安全方案,完美构建一个安全方案,

如某广告经过十多层的过滤提取出一滴水的过程,这就是纵深防御例子。

一木桶能装多少水不在于最长的板,在于最短的板。(木桶理论)

0x02:深入理解威胁的本质,如果只是过滤一些字符,那么<<笑傲江湖>>会变成笑傲江湖,1<2会变成1 2.

大大曲解了用户本意。这就是没在正确地方做正确事。

(四)数据代码分离原则:

安全起因:程序在堆栈中对用户数据当成代码执行,混淆了代码与数据的边界。

防止:在下列例子中要对$var 进行安全处理,如过滤,编码。

$var会被解析成代码。如果<body>$var </body>

输出:

<body>

</body>
           

如果$var的值等于:

  1. <script  src=http://evil></script>  

就会被当做代码解析,从而造成注入隐患

不可预测原则:

威胁起因:例如某文章社区,文章采用固定顺序存储文章,那么要删除所有文章只需要一个for遍历就可以了。

这个简单,个人理解就是一些敏感数值采用随机数,加密算法,哈希算法。

篇外章:

一个安全设计得体的网站往往loginID与nickname(昵称)会区分开,nickname可以公开给所有人看,而loginID是用户私有的,只能自己看到。

小知识点:

php5.3.4往下版本的0字节截断存在文件包含漏洞。

同上版本往下$is_a()函数存在远程执行漏洞。

继续阅读