擅长:python、mysql、java
<p>您需要验证上传的文件实际上是扩展名指示的类型。您可以通过各种方法来实现这一点,最简单的方法可能是通过<code>file</code>命令。我不知道它是否有API。你可以自己试试。对于上载前重命名为file.jpg的file.exe示例,运行<code>file file.jpg</code>,它将打印出一些内容,告诉您它是一个可执行文件。不过,这是可以被愚弄的。</p>
<p>如果你认为.exe意味着它将被执行,那么我猜你对Linux文件权限知之甚少。在linux上,只有文件权限中的execute位决定了——如果该位处于启用状态,则可以执行任何文件,而不管其扩展名如何。不要在任何上传的文件上设置它,你应该可以安全地执行它们。你可能仍然在为他们服务,让他们回到你网站的访问者那里,所以它仍然可能是XSS攻击的一个载体,所以要小心。</p>