zoukankan      html  css  js  c++  java
  • 基本代码安全知识

    昨天公司进行代码安全规范培训,有些东西早已知道,而有些东西第一次听说,于是都记下来和大家一起分享。

    1.       防止SQL注入

    a.       除了过滤单引号“ ' ”,还要过滤数据库中的注释符号“ -- ”。

    b.       SQL语句中的字符串拼接,是很不靠谱的;实在要拼接,一定要从代码安全的角度多想想。

    2.       文件上传漏洞

    这是我头一次听说有这么一个漏洞。

    现象:

    假设我们使用的是IIS6.0及之前版本,当我们上传一个文件名为【熊猫烧香.aspx .jpg】,那么存到服务器上的文件将会是【熊猫烧香.aspx】。

    原因:

    文件名【熊猫烧香.aspx .jpg】在“.aspx”和“.jpg”之间有一个蛮像空格的符号,其实是通过16进制编码器修改出来的“ \0 ”,IIS6.0及之前版本对于上传文件名的解析是从左向右的,如果在解析时遇到空格,就认为这个文件名已经结束,于是存在服务器上的文件就是【熊猫烧香.aspx】。

    解决方案:

    我们一般都会对上传文件的后缀名进行检查,但是IIS的漏洞绕过了我们的检查,于是上传文件重命名就是一个不错的解决办法。我们把每次上传文件的后缀拿出来,取个新名字,再加上原后缀,这个问题就可解决。

    我在之前的开发,有过上传文件的程序,碰巧我对每个上传文件都进行了重命名,但我并不知道有这个漏洞,运气啊运气…

    另外补充两点:

    a.       如果文件名中包含特殊字符,比如【熊猫烧香又来了.aspx;不是吧.jpg】这是一个文件名,中间包含分号“ ; ”,IIS6.0及之前版本在上传文件时正常,但是在解析时分号“ ; ”之后的文件名都不认。

    b.       Apache服务器对上传文件的检查是从右向左的。

    3.       Cookie欺骗

    这个应该很简单,大家都知道从哪里可以拿到cookie,怎么伪装cookie,怎么把一台机器上的cookie移到另外一台… Cookie很常用,特别在跨域访问时,我们常常会把用户名加密以后放在客户端。检查用户是否登录,就会去查看这个cookie,那么请别忘了在检查时加上客户端ip一起校验,在一定程度上可以阻止cookie欺骗。

    4.       XSS跨站脚本攻击

     对于这种攻击,我们要对左右尖括号“<、>”、分号“ ; ”、单引号“ ' ”进行过滤。我们对于用户输入或者获取来自地址栏的参数值(Request.QueryString["XXX"]),不应支持HTML编码。处理的方法有很多,"HttpUtility.UrlEncode”就是一种。

    5.       其他漏洞

     标签<body>有个属性"onload”,它会把属性中的值直接解析为javascript脚本,而不需要"<script></script>”或"javascript:”。据说淘宝曾经因为不知道这个漏洞,而导致上万的用户受到损失。

     
     


    转载需注明
    转载自: 博客园 - 读万卷书 行万里路 - 松江府 http://www.cnblogs.com/MikeYao/
  • 相关阅读:
    在线微博数据可视化
    SAP系统和微信集成的系列教程之六:如何通过OAuth2获取微信用户信息并显示在SAP UI5应用中
    SAP系统和微信集成的系列教程之五:如何将SAP UI5应用嵌入到微信公众号菜单中
    Jerry在2020 SAP全球技术大会的分享:SAP Spartacus技术介绍的文字版
    索引的正确“打开姿势”
    15个问题告诉你如何使用Java泛型
    华为云FusionInsight MRS:千余节点滚动升级业务无中断
    你的开发好帮手:下一代云原生开发工具技术
    云图说|读请求太多怎么办?一键读写分离来帮忙
    FusionInsight MRS:你的大数据“管家”
  • 原文地址:https://www.cnblogs.com/MikeYao/p/1774074.html
Copyright © 2011-2022 走看看