在学习一门新编程语言时如何找出其中的缺陷呢
为理解代码审核理念,将缺陷情境作简约处理。 一门新的编程语言,作为后端处理程序,肯定是需要与中间件/数据库等其他模块相联系的,如果它们对待请求的安全标准不同,就可能导致安全问题。下面我们用一些已知语言的例子来演示这一点。 WSGI作为桥梁连接中间件和应用程序,而作为应用程序的这个全新的编程语言也会在这一环节面临着安全问题。 此时,nginx对待请求和gunciron对待请求的标准不同。构造/privateHTTP/1.1/../../public 。nginx会解析../返回上级目录,认为该请求是访问/public,安全地放行传给gunicron,而gunicorn不会这样解析,反而认为是发送了两个包,解析为访问/private和访问/public。这样就绕过了安全检查。 这门全新的编程语言势必有多种数据类型来满足不同的需求,如列表、数组等等。这时安全标准不一致就可能导致问题。 no-sql一度认为不可被注入,最后却败于这一点。 以mongodb+js为例。 mongodb舍弃了sql语句,规范写法不采用拼接方式调用执行。即使采用一个安全实施规范,与php框架的组合也还是会容易出现各种各样的问题。 (编辑:银川站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |