美文网首页设计方案Jab Web的那些事儿
JAVA 安全编程——ESAPI与OWASP Top 10

JAVA 安全编程——ESAPI与OWASP Top 10

作者: littlebin404 | 来源:发表于2019-11-13 15:07 被阅读0次

    ESAPI是owasp提供的一套API级别的web应用解决方案。简单的说,ESAPI就是为了编写出更加安全的代码而设计出来的一些API,方便使用者调用,从而方便的编写安全的代码;下图显示提供的API与OWASP列出的10个安全问题的关联关系:

    相关API介绍可以查看官方文档:https://www.javadoc.io/doc/org.owasp.esapi/esapi/2.1.0

    ESAPI安装:

    下载地址:https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API#tab=Downloads

    下载Log4j (log4j-1.2.17.zip)(一定要导入这个jar包,没有会报错的!)

    http://logging.apache.org/log4j/1.2/download.html

    将jar包和源码Download下来

    在Resources目录里面导入ESAPI.properties 、 validation.properties 两个配置文件:

    两个配置文件就在下载的ESAPI for Java(source)里面

    ESAPI使用:

    针对XSS漏洞:

    编码输出,即“转义”,是用来确保字符被视为数据,而不是作为HTML字符被浏览器解析。

    <script>alert(1)</script>被encodeForHTML转义结果:

    xss弹窗失败

    <a href="javascript:alert(1)" />这种超链接要用 encodeForURL接口,否则:

    具体demo可以参见:https://github.com/littlebin404/XssTest.git

    针对SQL注入:

    input = ESAPI.encoder().encodeForSQL(newMySQLCodec(MySQLCodec.Mode.STANDARD),input);

    验证输入:

    input = ESAPI.validator().getValidInput("",input,"Email",11,false);

    验证恶意文件

    String inputfilename ="a.txt";

    ArrayList<String> allowedExtension = new ArrayList<String>();

    allowedExtension.add("jpg");

    if(!ESAPI.validator().isValidFileName("upload",inputfilename, allowedExtension,false)){

      System.out.println("文件名不合法!");

    }

    //获取随机文件名

    ESAPI.randomizer().getRandomFilename("jpg");

    更多参考:

    WEB安全编程技术规范:https://wenku.baidu.com/view/c24d4e642af90242a895e588.html

    相关文章

      网友评论

        本文标题:JAVA 安全编程——ESAPI与OWASP Top 10

        本文链接:https://www.haomeiwen.com/subject/hnbhictx.html