积极答复者
上传文件类型检测,怎样过滤伪装病毒,在添加文章的编辑器中怎么让插入的代码在显示时显示行号

问题
-
问题如标题所示,主要是个人在制作类似博客园的网站中所遇到的编辑器方面的问题,我以前使用的是网上流传的CuteEditor的一个文本编辑器,可是我现在面临的问题是这个编辑器所提供的功能太多,并且不容易控制,特请教有经验人士有没有其他的方法解决这个问题并能够如题目所说过滤病毒,并且在添加文章时能够让文章中夹杂的代码显示行号。
希望大家能够帮忙。。。。。。。。。。。
- 已移动 Sheng Jiang 蒋晟Moderator 2010年8月24日 1:06 (发件人:ADO.NET 与 LINQ)
答案
-
你好:
一般禁止上传带exe的等可执行的文件就行了。如果你想要显示带行号的代码,需要修改你的代码高亮功能。让它在生成高亮的代码时添加上。或可以使用javascript在文章呈现时指定特定的tag时的代码重新初始化。
http://www.cnblogs.com/yuji/archive/2009/04/16/1437345.html
http://www.cnblogs.com/7ero/articles/934596.html
http://www.cnblogs.com/rubylouvre/archive/2010/02/20/1669541.html希望对你有所帮助。
- 已标记为答案 BoberSongModerator 2010年8月27日 6:03
-
禁止上传exe文件也不能过滤掉病毒。
我以前用过fckeditor来做超文本编辑器,曾经遇到过有人利用它上传一个asp的文件进来,这样它就可以通过url访问这个asp来挂马了。
后来我限制了扩展名,只允许上传jpg、bmp和gif格式的图片,但依然被挂马,通过研究iis日志发现黑客先利用fckeditor在服务器建立了一个asp.asp这个文件夹,然后在这个文件夹下面上传了一个伪装的jpg文件。这jpg就是木马(这是iis6的一个bug,用url访问这个文件夹下的文件照样可以执行服务端脚本)。可能有人会说可以判断文件头的方式来确定到底是不是一个真正的图片,但黑客照样可以利用copy /b的方式把一个真正的jpg和一个asp文件组合成一个jpg文件,你如果用图片查看器打开这个文件,显示给你的确实是一个图片,但如果把它放到asp.asp文件夹下面,iis6是会执行里面的脚本的。
后来我干脆改变了架构,所有带有上传的功能都只能上传到一个统一的目录下,然后在iis里设置这个目录的执行权限为“无”。
- 已标记为答案 BoberSongModerator 2010年8月27日 6:03
全部回复
-
-
你好:
一般禁止上传带exe的等可执行的文件就行了。如果你想要显示带行号的代码,需要修改你的代码高亮功能。让它在生成高亮的代码时添加上。或可以使用javascript在文章呈现时指定特定的tag时的代码重新初始化。
http://www.cnblogs.com/yuji/archive/2009/04/16/1437345.html
http://www.cnblogs.com/7ero/articles/934596.html
http://www.cnblogs.com/rubylouvre/archive/2010/02/20/1669541.html希望对你有所帮助。
- 已标记为答案 BoberSongModerator 2010年8月27日 6:03
-
禁止上传exe文件也不能过滤掉病毒。
我以前用过fckeditor来做超文本编辑器,曾经遇到过有人利用它上传一个asp的文件进来,这样它就可以通过url访问这个asp来挂马了。
后来我限制了扩展名,只允许上传jpg、bmp和gif格式的图片,但依然被挂马,通过研究iis日志发现黑客先利用fckeditor在服务器建立了一个asp.asp这个文件夹,然后在这个文件夹下面上传了一个伪装的jpg文件。这jpg就是木马(这是iis6的一个bug,用url访问这个文件夹下的文件照样可以执行服务端脚本)。可能有人会说可以判断文件头的方式来确定到底是不是一个真正的图片,但黑客照样可以利用copy /b的方式把一个真正的jpg和一个asp文件组合成一个jpg文件,你如果用图片查看器打开这个文件,显示给你的确实是一个图片,但如果把它放到asp.asp文件夹下面,iis6是会执行里面的脚本的。
后来我干脆改变了架构,所有带有上传的功能都只能上传到一个统一的目录下,然后在iis里设置这个目录的执行权限为“无”。
- 已标记为答案 BoberSongModerator 2010年8月27日 6:03
-
你的做法是正确的,这也是目前最简单实用的做法。
Most questions i'm interested in might have two or more possible answers i know or i don't know. So please read question carefully before you try to answer, and explan your question detailedly before asking for help. 很多看起来简单的问题都存在多种可能性,如果您不能详细的解释,别人就不能正确判断出您所遭遇的实际状况,因而不能给出最适合的解决办法。在您没有给出详细信息的情况下,施助者只有张贴大量有可能有关的解决办法。而您可能没有耐心阅读所有这些东西,在这种情况下您就客观地形成了对施助者的伤害——除非“施助者”并没有用心去尝试帮助您。 同样地,当您尝试解答一个看起来“好像遇到过”的问题的时候,您也需要详细地阅读和理解这个问题。如果您不了解问题的细节,您可能会给出不相关的或者无助于解决当前问题的解答。