以下任何文件类型都可以执行病毒或以任何方式损害服务器吗?
pdf、.png、.jpg、.doc、.docx、.xls、.xlsx、.ppt、.pptx、.gif。
问题本身没有理由,因为到目前为止给出的答案(我很抱歉告诉这个)。不要把所有这些都当作批评:我自己解释。
您甚至可以将TheWorstVirusInTheWorld.exe上传到您的服务器上,但在实际执行之前它不会有害。除非操作系统和/或其外壳或其他程序(或脚本)有严重的错误,否则不会自动执行任何代码,即“系统管理员不知道”。
请参阅 virustotal.com。他们要求您上传可疑的可执行文件,以判断它们是否是病毒。他们害怕这个吗?一定不行。那是因为文件被上传到服务器上,然后被一个你可以称为“防病毒”的工具读取,它不会执行它们。
所以问题可能是这样的:“哪种文件可以在我的服务器上安全地执行?” 答案是:没有来自未知来源的文件。文件的扩展名完全无关:在 UNIX 系统上,您可以执行任何设置了“执行”位 (=attribute) 的文件(甚至是 .doc)。
黑客和骗子不会像您期望的那样行事。他们不会在您的服务器上上传常见病毒,如果他们这样做了,他们必须执行它们,如果他们可以在您的服务器上执行某些东西,那么您的服务器已经消失了,您为清理文件扩展名所做的所有努力都是垃圾。
@AAA:过程将是这样的:
1) 用户上传一个文件,比如 test.exe。
2)当它被服务器接收到时,您提取扩展名并将其以文件名存储在数据库中,这样您就可以知道witch文件具有类型扩展名。
3) 当用户请求一个文件时,你查询文件扩展名和文件名,将它们组装起来,最后发送给用户。
注意: 你可能有重名的问题,如果你生成一个固定长度的随机字符串,并以请求文件名的文件名为例,它会更好。
注意到这列在“PHP Upload”下,我相信他说的是远程执行。如果是这样的话,它们应该都是安全的。我阻止的通常列表在这个 htaccess 列表中
<Files ~ "\.(php|php3|php4|php5|phtml|pl|py|psp|js|jsp|cgi|util)$">
Order deny,allow
Deny From All
</Files>