防止命令注入的方法如下:

    程序对非受信的用户输入数据进行净化,删除不安全的字符。
    创建一份安全字符串列表,限制用户只能输入该列表中的数据。
    配置URL访问控制策略:部署于公网的axis服务器,可通过ACL禁止对/services/AdminService及/services/FreeMarkerService路径的访问。
    禁用axis远程管理功能:axis<=1.4版本默认关闭了远程管理功能,如非必要请勿开启。若需关闭,则需修改axis目录下WEB-INF文件夹中的server-config.wsdd文件,将其中”enableRemoteAdmin”的值设置为false。

    1. if (!Pattern.matches("[0-9A-Za-z@.]+", dir)) {
    2. // Handle error
    3. }
    1. String btype = null;
    2. // only allow integer choices
    3. int number = Integer.parseInt(request.getParameter("backuptype"));
    4. switch (number) {
    5. case 1:
    6. btype = "tables"
    7. break; // Option 1
    8. case 2:
    9. btype = "users"
    10. break; // Option 2
    11. case 3:
    12. btype = "full"
    13. break; // Option 3
    14. default: // invalid
    15. break;
    16. }
    17. if (btype == null) {
    18. // handle error
    19. }