华侨网,有态度的华人新闻网站!

帮助中心 广告联系

華僑時報 | 華僑網

热门关键词:  央行  发顺丰  蓝狐  詩詞  习近平
热门TAG标签:基本开发准则

Web开发基本准则

来源:网络整理 作者:华侨时报 发布时间:2018-03-13
摘要:Web开发工程师请阅读下面的前端开发准则,这是第一部分,强调了过去几年里我们注意到的Web工程师务须处理的Web访问安全基础点。尤其是一些从传统软件开发转入互联网开发的工程

Web开发工程师请阅读下面的前端开发准则,这是第一部分,强调了过去几年里我们注意到的Web工程师务须处理的Web访问安全基础点。尤其是一些从传统软件开发转入互联网开发的工程师,请仔细阅读,不要因为忽视这些基础点而制造一个又一个的漏洞或突发事件。

Web开发基本准则-55实录-Web访问安全

郑昀 创建于2013年2月

郑昀 最后更新于2013年10月14日

提纲:

Web访问安全

缓存策略

存储介质连接池

业务降级

并发请求的处理

关键词:

Session Hijacking,XSS(Cross Site Scripting),SQLi(SQL Injection),CSRF(Cross-Site Request Forgery),FormHash,Rate Limits,平行权限

一,Web访问安全 1.1.利用 FormHash 防 CSRF 和表单自动提交

FormHash 指的是,通过在 Form 表单中构造一个隐藏的 input 元素,如:

  <input type="hidden" value="{FORMHASH}" />

  让第三方难以伪造这个 input 的 value,借此阻止网站外部随意构造表单提交,即防CSRF。适合的业务场景有注册、登录、下单、秒杀、抽奖、积分换代金券等等。

1.1.1.康盛的做法

康盛的产品如 Discuz 为了防止灌水机发帖,FormHash 值是这么计算的:

它的计算函数为 formhash() :

function formhash($specialadd = '') {      

global $_G;  

$hashadd = defined('IN_ADMINCP') ? 'Only For Discuz! Admin Control Panel' : '';   

return substr(md5(substr($_G['timestamp'], 0, -7)

        .$_G['username'].$_G['uid'].$_G['authkey']

        .$hashadd.$specialadd), 8, 8);

}

首先,substr($_SGLOBAL['timestamp'], 0, -7),截取时间戳前3位(注意,康盛的这种做法允许 formhash 在一定的时间里生效且不变,由于截取了时间戳的前3位,那么有效期范围是115天)。

然后与用户名、用户UID、authke​y、自定义的key等字符串连接。这里的 authkey 是根据服务器端配置文件里的 authkey 与客户端 cookies 里的 saltkey 键值连接后,md5 一下得到的,所以并不一定是固定值,取决于你怎么向客户端里种 saltkey cookie 了(康盛选择的是种一个 random(8) 的随机值)。

最后再做一次 md5,截取字符串的8位。

服务器端用 submitcheck 函数进行验证时,会再算一遍 formhash 来与客户端提交的进行比对:$_POST['formhash'] == formhash()

康盛的 formhash 仿造几率很小,但也不见得是“不同表单不同随机值”,所以可以在登录后从康盛产品的网页中得到一个 formhash 字符串,以及 cookies 里的 saltkey 键值,然后构造表单并构造 HTTPRequest,提交即可,115天内有效

只能说康盛的做法简单且有一定效果,适合作为你起步的 Plan A 抵挡一阵子。

1.2.通过全局 Filter 检测或过滤 XSS/SQLi/shell注入

通过乌云网的漏洞列表,我们可以发现 XSS注入[注1]/SQL 注入无处不在,各大厂商前赴后继地犯错。如果框架本身不能有效拦截或检测,仅凭借铁打营盘流水兵的工程师自己的觉悟,恐怕朝不保夕。

常见的误区是,(因为XSS漏洞很常见所以认为)XSS没什么了不起的,不会起多大风浪。

一个弱漏洞可能没事儿,但是攻击者往往很有恒心毅力,如果被他们找到一连串的弱漏洞,再加上社会工程学的手段(请参考2013年,利用社工攻陷知乎后台的安全案例),千里之堤就会毁于蚁穴。譬如,一个前台的存储型XSS漏洞,配合管理后台的登录帐号 Session Hijacking,就能轻易突入管理后台。

郑昀推荐你阅读以下安全案例以增进认识(有图有真相):

责任编辑:华侨时报


最火资讯