方法1不可行,因为它会在每个请求的图像上要求用户名和密码。由于缓存问题,您可能会提示某些图像,而不是其他图像。
方法2对我来说最有吸引力,因为它占用最少的处理器,但是只有通过md5函数传递的user_id,文件名仍然很容易猜到。您应该使用md5(’my secret
string’。$ user_id)以获得更好的解决方案。
为什么通过Perl或Python选择#3?PHP的速度有什么问题?的确,如果您以这种方式保护图像,则应该花更多的时间将其移出Webroot并移至Webroot上方,以便只能通过脚本访问它们,脚本首先检查用户是否已通过身份验证,然后通过读取头像来传递头像并输出。或者,您可以使用htaccess文件“”保护目录
denyfrom all。
另外,您应该通过PHP或.htaccess寻求HTTP_REFERER安全。
祝好运!



