Java防止路径操控和命令注入 代码

public class
Test  
{  
   
public static void main(String[] args)  
   
{  
    
   System.out.println(getSafeCommand("abcd&efg"));  
 
  
   System.out.println(getSafePath("abcd/efg"));  
 
  }  

   
/** 
     * Get the safe
path 
     * @param filePath Enter the
path 
     * @return Safe
path 
 
   */  
    public static
String getSafePath(String filePath)  
   
{  
        // return
safe path  
    
   StringBuffer safePath = new
StringBuffer();  
    
   // safe path white list  
 
      String whiteList =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-=[];‘,.
[email protected]#$%^&*()_+\"{}|:<>?";  
 
      char[] safePathChars =
filePath.toCharArray();  

    
   for (int i = 0, length = safePathChars.length; i < length;
i++)  
    
   {  
       
    int whiteListIndex =
whiteList.indexOf(safePathChars);  
    
       if (-1 == whiteListIndex)  
 
          {  
 
              return
safePath.toString();  
       
    }  
       
  
 safePath.append(whiteList.charAt(whiteListIndex));  
 
      }  
    
   return safePath.toString();  
   
}  

    /** 
     * Get
the safe command 
     * @param command Enter the
command 
     * @return Safe command 
 
   */  
    public static String
getSafeCommand(String command)  
   
{  
        // return safe
command  
        StringBuffer
safeCommand = new StringBuffer();  
    
   // safe command white list  
    
   String whiteList =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-=[]\\‘,./
[email protected]#$%^*()_+\"{}:<>?";  
    
   char[] safeCommandChars =
command.toCharArray();  

    
   for (int i = 0, length = safeCommandChars.length; i <
length; i++)  
    
   {  
          
 int whiteListIndex =
whiteList.indexOf(safeCommandChars);  
    
       if (-1 == whiteListIndex)  
 
          {  
 
              return
safeCommand.toString();  
       
    }  
       
  
 safeCommand.append(whiteList.charAt(whiteListIndex));  
 
      }  
    
   return safeCommand.toString();  
   
}  
}  

创意横幅
文章来源:http://www.huiyi8.com/hengfu/chaungyi/

时间: 2024-10-07 12:29:33

Java防止路径操控和命令注入 代码的相关文章

WEB安全第一篇--对服务器的致命一击:代码与命令注入

零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的payload技巧以便于备忘.不是大神.博客内容非常基础,如果真的有人看而且是大牛们,请不要喷我,欢迎指正我的错误(水平有限). 一.基本原理: 1.代码注入和命令注入的本质: 用户输入没有经过过滤而且与程序员开发的代码拼接后构成完成的可执行的代码段被服务器执行(命令也是代码的一部分,不过是拼接在命令执行

带你开发一款给Apk中自动注入代码工具icodetools(完善篇)

一.前言 在前面已经介绍完了 自动给apk中注入日志代码工具icodetools原理了,在那里我们曾经说过其实离真正的可使用价值有点距离,本篇就对这个工具进行一些优化,让其真正意义上开始能工作量产.当时在前面一篇文章中说到遗留的三个主要问题: 第一个问题:对每个类中都添加一个静态打印方法堆栈信息的方法,这样会导致有些应用的dex过大,方法数超了问题 第二个问题:在从输入一个apk到给每个类中的每个方法添加日志代码然后在签名输出最终的apk,这个过程其实很多步,但是我们之前都是手动的去进行操作,非

android黑科技系列——自动注入代码工具icodetools

一.前言 在前面已经介绍完了 自动给apk中注入日志代码工具icodetools原理了,在那里我们曾经说过其实离真正的可使用价值有点距离,本篇就对这个工具进行一些优化,让其真正意义上开始能工作量产.当时在前面一篇文章中说到遗留的三个主要问题: 第一个问题:对每个类中都添加一个静态打印方法堆栈信息的方法,这样会导致有些应用的dex过大,方法数超了问题 第二个问题:在从输入一个apk到给每个类中的每个方法添加日志代码然后在签名输出最终的apk,这个过程其实很多步,但是我们之前都是手动的去进行操作,非

PHP漏洞全解(二)-命令注入攻击

本文主要介绍针对PHP网站常见的攻击方式中的命令攻击.Command Injection,即命令注入攻击,是指这样一种攻击手段,黑客通过把HTML代码输入一个输入机制(例如缺乏有效验证限制的表格域)来改变网页的动态 生成的内容.使用系统命令是一项危险的操作,尤其在你试图使用远程数据来构造要执行的命令时更是如此.如果使用了被污染数据,命令注入漏洞就产生了. 命令注入攻击 PHP中可以使用下列5个函数来执行外部的应用程序或函数 system.exec.passthru.shell_exec.“(与s

带你开发一款给Apk中自动注入代码工具icodetools(开凿篇)

一.前言 从这篇开始咋们开始一个全新的静态方式逆向工具icodetools的实现过程,这个也是我自己第一次写的个人觉得比较有用的小工具,特别是在静态方式逆向apk找关键点的时候,后续会分为三篇来详细介绍这个工具实现: 第一篇:开凿篇,简单介绍实现原理以及简单的初次方案实现简单的apk注入代码功能 第二篇:填坑篇,这一篇是在前一篇的基础上对工具的优化,可以应对市面上大部分的apk代码注入功能实现 第三篇:生产篇,这一篇是在前两篇的基础上利用这个工具来实际操刀如何进行快速定位应用的关键方法功能 还记

带你开发一款给Apk中自己主动注入代码工具icodetools(开凿篇)

一.前言 从这篇開始咋们開始一个全新的静态方式逆向工具icodetools的实现过程.这个也是我自己第一次写的个人认为比較实用的小工具,特别是在静态方式逆向apk找关键点的时候.兴许会分为三篇来具体介绍这个工具实现: 第一篇:开凿篇,简介实现原理以及简单的初次方案实现简单的apk注入代码功能 第二篇:填坑篇.这一篇是在前一篇的基础上对工具的优化,能够应对市面上大部分的apk代码注入功能实现 第三篇:生产篇.这一篇是在前两篇的基础上利用这个工具来实际操刀怎样进行高速定位应用的关键方法功能 还记得那

java web路径和spring读取配置文件

此篇博客缘起:部署java web系统到阿里云服务器(ubuntu14.04)的时候,有以下两个问题 找不到自定义的property配置文件 上传图片的时候找不到路径 开发的时候是在windows上的,运行正常,部署的时候就出问题了,肯定是windows和linux路径区别导致的(一个小问题来回鼓捣了几个小时,因为有自己对windows下和linux下的区别还不是特别了解,还有就是每次在windows下修改完成以后都要重新上传到阿里云,项目较大来回也需要较多时间...),遂决定好好看看java

XSS过滤JAVA过滤器filter 防止常见SQL注入

Java项目中XSS过滤器的使用方法. 简单介绍: XSS : 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的. sql注入所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执

命令注入新玩法:巧借环境攻击目标

0x00 酷趣 wargame 由于受赏金厂商保密协议所限,我无法公开原始漏洞详情,但我更清楚 "talk is cheap, show me the code",耗时费神,找到一个 wargame,相较赏金漏洞,不但体现了相同精髓,这个 wargame 还多了些限制条件,所以,让它变得更加有趣.更有挑战. 我把 wargame 源码写入 CMDi_lab/escaping_quotation/index.php,核心如下: 快速过下源码.首先,用 GET 方法获取 f1.f2 两个参