李毅吧 关注:34,031,913贴子:993,670,368

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

只看楼主收藏回复

  • 59.44.39.*
request.getParameter("_id");
首先要判断这句不是空才可以,否者程序会报错。
String pkgId ="";
if(null!=request.getParameter("_id"))
pkgId = request.getParameter("_id");


16楼2010-02-25 10:38
回复
    • 59.44.39.*
    还有就是这代码没有catch块,应该加上,finally 方法应该在catch后执行


    17楼2010-02-25 10:42
    回复
      • 194.138.203.*
      好多半懂不懂的人, 16L 17L自己语法都没过关
      答案应该是15L说的那样,因为如果正确打开文件文件会被删除,所以可以利用这个删除一些关键文件,搞挂服务器


      18楼2010-02-25 10:48
      回复
        String pkgId = request.getParameter("_id");
        //页获取面传入参数&_id=""后的值存到String型变量pkgId中
        File f = null;
        //初始化文件f为空
        if (pkgId == null) return;
        //判断获取到值如果为空 返回
        try {f = new File(BASE_DIR+SEP+pkgId);process(f);}
        //实例化f为新建一个文件 BASE_DIR+SEP+pkgId 为路径
        process(f)应该是返回String类型的一个方法(他妈的没catch exception!!)
        finally { if (f!=null) { f.delete(); }}
        //最后强制执行如果文件不为空 删除文件
        


        IP属地:山西19楼2010-02-25 10:54
        回复
          这贴学术了


          IP属地:北京20楼2010-02-25 11:05
          回复
            • 59.44.39.*
            回复:18楼
            我真无语,到底是你不懂还是我不懂。
            上面的人都说完的东西让你回帖你还会再说一边吗?
            我只不过看到了,说了下代码书写上应该注意的地方。
            这不是java吧,不想和你多说了,不懂装懂的人才会乱评价别人的帖子。


            21楼2010-02-25 11:07
            回复
              没看懂。。。。


              22楼2010-02-25 11:14
              回复
                • 194.138.203.*
                21: 因为你说的是错的,你自己去试试吧,难道赋空值会报错?你java老师真的内牛满面了. 还有try finally是为了保证代码执行,不是所有try都是为了catch


                23楼2010-02-25 11:19
                回复
                  15l 说的很清楚了,就是这么回事
                  其实这几句考察的就是这个安全问题,其他的语句都被省略了,21l说的都是废话


                  IP属地:北京24楼2010-02-25 11:24
                  回复
                    • 59.44.39.*
                    。。。好,那就详细说一下好了
                    首先,根据代码的片段,可以判断此段代码为java后台代码,前台客户端应该是浏览器,整体结构为B/S,B/S结构提交的数据、表单首先前台都要进行合法性验证,提交到后台进行处理。
                    我写的代码是过滤掉如果参数“_id”通过URL传递过来,但是前台用户并没有传递“_id”这个参数的情况,也就是说这个参数根本就不存在的情况下怎么办,并不是判断这个参数为空的时候该怎么办。
                    通常情况为了保险,前后台都是要对重要的参数和表单的合法性进行验证的,也就是15L说的过滤敏感字符。
                    不是我的老师不好,是某些人学的不细,考虑情况不全而已。


                    25楼2010-02-25 11:37
                    回复
                      • 59.44.39.*
                      还有一点需要问下23L,你到底写过代码没有,你写代码catch不写,你怎么调试,你知道什么异常么?你老师教你的不写catch就能知道哪错了吗?那可真要请教了。
                      希望别人维护你写的代码的时候,不会感谢你家八辈祖宗。


                      26楼2010-02-25 11:44
                      回复
                        回复:25楼
                        New File(URL)在调用的时候,如果遇到同名文件的话是直接覆盖么?还是会报错返回?


                        27楼2010-02-25 11:45
                        回复
                          • 59.44.39.*
                          回复:27楼
                          那要看什么操作系统了,你获得的用户权限有多大。
                          如果用户权限够大,此文件也是该用户可以写的文件,该文件将被直接覆盖。


                          28楼2010-02-25 11:49
                          回复
                            回复:28楼
                            学校论坛服务器上似乎有程序就是这么写来的,估计是学生写的吧,我去搞搞试试


                            29楼2010-02-25 11:53
                            回复
                              还扯这点破事
                              这道题的重点根本不在那里,可以说是故意省略了
                              你就是再写2000字也和采分点没关系


                              IP属地:北京30楼2010-02-25 11:54
                              回复