允许在受保护目录中使用PHP脚本
我有一个名为“templates”的文件夹,它是CHMOD 777,由htpasswd保护。这意味着我仍然可以使用我的PHP上载脚本将文件上载到该文件夹中,来自外部的人无法访问这些文件 我还得到了一个使用phpmailer类的脚本。此脚本发送电子邮件并附加位于受保护文件夹中的文件 我的问题是,现在我启用了此保护,我确实收到了电子邮件,但没有附件。我只在没有htpasswd保护时收到附件允许在受保护目录中使用PHP脚本,php,.htaccess,attachment,phpmailer,.htpasswd,Php,.htaccess,Attachment,Phpmailer,.htpasswd,我有一个名为“templates”的文件夹,它是CHMOD 777,由htpasswd保护。这意味着我仍然可以使用我的PHP上载脚本将文件上载到该文件夹中,来自外部的人无法访问这些文件 我还得到了一个使用phpmailer类的脚本。此脚本发送电子邮件并附加位于受保护文件夹中的文件 我的问题是,现在我启用了此保护,我确实收到了电子邮件,但没有附件。我只在没有htpasswd保护时收到附件 你知道我能做什么吗?PHP在Web服务器的htpasswd保护范围之外运行-一旦脚本运行,它就可以自由支配文件
你知道我能做什么吗?PHP在Web服务器的htpasswd保护范围之外运行-一旦脚本运行,它就可以自由支配文件系统(至少是Web服务器的userid/groupid可以触及的内容)。除非您提供要作为URL附加的文件的路径,否则该文件上的任何操作都将通过正常的文件系统操作,而不是通过Web服务器,因此htpasswd保护不会进入图片中
如果没有附加文件,我会检查脚本,看看您是否提供了文件的适当路径,以及Web服务器的用户ID是否对该文件具有读取权限。确保您的脚本以文件系统上的路径访问附件文件,如
/var/www/example.com/httpdocs/uploads/foo.jpg
不作为URL
http://example.com/uploads/foo.jpg
确认脚本可以访问该文件
<?php
if(!is_readable($file)) {
$user = get_current_user();
echo 'Error: '.$user.' cannot access '.$file;
exit();
}
?>
如果文件和mailer脚本位于同一台服务器上,则应使用保护。如何附加文件?