李毅吧 关注:34,014,909贴子:993,646,676

JAVA帝进,在窝窝求助失败的姐最后滴希望就看毅丝们了。。。。。

只看楼主收藏回复

CAN YOU FIND THE SECURITY FLAW IN THIS JAVA CODE?
String pkgId = request.getParameter("_id");
File f = null;
if (pkgId == null) return;
try {f = new File(BASE_DIR+SEP+pkgId);process(f);}
finally { if (f!=null) { f.delete(); }}
某计算机系童鞋的签名。弄死看不懂。。。。


1楼2010-02-25 09:49回复
    去谷歌翻译看看…


    2楼2010-02-25 09:51
    回复
      一个对id安全性缺陷的检验吧?
      可能是防止注入用的
      具体不了解
      非计算机专业路过


      IP属地:安徽3楼2010-02-25 09:51
      回复
        翻译?。。。姐求教的是第一行的英语以下的部分。。。


        4楼2010-02-25 09:52
        回复
          • 218.71.173.*
          傻,去JAVA吧,或者C语言吧问啊,哥08年考C语言在那里混过一个学期、、、、马上解答就出来了


          5楼2010-02-25 09:54
          回复
            String pkgId = request.getParameter("_id");
            //从请求中得到参数 _id
            File f = null;
            //声明一个File类 f
            if (pkgId == null) return;
            //如果 pkgId 不存在,返回
            try {f = new File(BASE_DIR+SEP+pkgId);process(f);}
            //初始化f 并且处理f
            finally { if (f!=null) { f.delete(); }}
            //如果f不为空,删除f
            这代码是瞎写的,没有任何意义


            6楼2010-02-25 09:57
            回复
              应该是根据用户ID 在本地建立一个文件 然后对这个文件进行处理
              处理完了删除


              IP属地:四川7楼2010-02-25 09:57
              回复
                囧囧
                输入PKG用户名=请求...获得参数
                文件F= 空白
                如果PKG用户名空白则返回
                重试新的文件F
                最终 如果空白 删除


                IP属地:山东8楼2010-02-25 09:57
                回复
                  字符串pkgid 等于 (对象)request的 id,getParameter是方法名


                  9楼2010-02-25 09:58
                  回复
                    • 121.207.151.*
                    我艹。。这么简单。。。。。
                    虽然我是学C#的。。但是也看得懂啦


                    10楼2010-02-25 09:58
                    回复
                      • 113.9.165.*
                      关于注入的问题,虽然不太清楚关于File的安全隐患
                      但是一个http请求过来,怎么可能连检查都不检查就new File了


                      11楼2010-02-25 10:02
                      回复
                        通过_id创建一个文件,然后处理它,然后删除它。。。 具体要看process方法写的是什么了。。。


                        IP属地:湖南12楼2010-02-25 10:07
                        回复
                          我菜鸟一只,仅仅是建议. 安全性问题可能在这吧,if (f!=null). 你用f=new File(Path)以后,f就不会是null.
                          你if里的条件应该写成 if(f.exists()) 然后执行后面的删除. 要不f.delete()就出错了吧.
                          process方法怎么写的不知道,也可能会有错. 应该也加上 if(f.exists())的条件


                          13楼2010-02-25 10:16
                          回复
                            • 113.9.165.*
                            回复:13楼
                            delete不存在也不会出错,你可以试试


                            14楼2010-02-25 10:21
                            回复
                              • 149.171.48.*
                              这里的安全隐患是指
                              黑客可以设置request的"_id"属性为"../../user.dat"什么的
                              这样,就会在上层目录新建然后覆盖一些特殊文件
                              我猜的


                              15楼2010-02-25 10:34
                              回复