拒绝访问php文件,除非处理HTML表单


Deny access to php file except to process HTML forms

我使用PHPMailer从我的网站上提交的HTML表单发送电子邮件自己的数据。所以我有这个文件mydomain.com/mail/mailer.php,它必须包含我的电子邮件帐户的密码。所以我要拒绝访问mydomain.com/mail/来保护这个文件,让人们远离那里。当我在mydomain.com/mail/中的.htaccess中使用"Deny from all"这样做时,我的表单由于403错误而停止工作。

我如何让HTML表单在mydomain.com被处理,同时拒绝访问其他人?

我的邮件脚本重定向到我的邮件子目录之外的成功页面,所以这不是问题。在脚本成功将表单数据通过电子邮件发送给我之前,发生了403。

我已经尝试了"命令允许,拒绝/拒绝所有/允许来自mydomain.com"。

  1. 仅仅因为代码中包含您的密码并不意味着人们可以看到它。如果有人去到那个URL,代码执行,它不只是转储代码到浏览器,如果这是你担心的。
  2. 如果你有POST/GET到这个脚本的表单,那么这个脚本当然必须是可用的(不受。htaccessdeny规则等的保护)
  3. 说了这么多,你可以简单地把配置分割成一个单独的文件,你包括(例如。config.php)然后保护该文件:

/myfolder/myform.php
/myfolder/config.php

在上面的例子中,你可以有myform.php include 'config.php',然后在你的。htaccess中添加一个DENY规则来阻止对config.php的任何访问

示例/myfolder/.htaccess表项:

<Files "config.php">
   Order deny,allow
   Deny from all
</Files>

你不能否认mailer.php并期望它工作。它存在的全部意义就是让人们在提交表单时被引导到它。如果你的网页浏览器配置正确,执行PHP代码,你的网页上没有其他脚本有安全漏洞,你的系统是正确的补丁和最新的,你的密码是安全的,足够高的质量,这是相当肯定的预期,没有人会看到你的文件的源代码。