各位高手,以及路过的朋友们,大家好!我这里有个问题,实在是想不出办法了。
问题是:编写一段程序,程序能够识别JS文件,目的是阻止上传JS文件,以免有安全隐患。看起来很简单是吧?不过我目前有下面这些进展:
1,文件扩展名不可靠,用户可能修改扩展名后上传JS文件。
2,效率问题,比如扫描10000个文件,时间尽量不超过10秒,也就是每个文件尽量不超过1ms,实在不行超过一些也没关系,备选条件吧。
3,研究java6中的一个新特性研究了很长时间——ScriptEngine,原本打算通过文件是否能够编译运行来判断,但发现运行方法eval()只能抛ScriptException异常,而且某些js文件也不能通过编译后运行,这个办法不可行。
4,百度+google,未果。实在没招了,只好来发帖提问了,希望各位帮忙想想办法啊!
多谢了!

解决方案 »

  1.   

    你做什么网站,博客?看你上传的文件了,如果文件是显示在页面的上的化,对文件进行html编码不久可以了,也不用检查了吧
      

  2.   

    多谢1L的回答!不过,我的问题不是让不让js文件执行,
    而是从用户上传的一大堆文件中,识别出Js文件,并过滤掉,
    在一堆各种各样的文件中,如果藏着一个Js文件,程序要能找出来。
      

  3.   

    个人觉得 在上传文件时
    应该会用IO吧
    可以把js 脚本 用函数给替换的
    在服务器端
    反正要读取内容 如果是js 删掉或是处理下
      

  4.   

    问题是怎么知道哪个文件是JS文件,哪个文件不是JS文件?
    唉,还是没明白我的意思。
    我就是想编这样一个方法:
    输入:一个File
    输出:如果文件是JS文件,返回ture,否则返回false