如何用htaccess禁止dede执行权限?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 DEDE建站 正文

核心原理

.htaccess 是 Apache 服务器的一个配置文件,它允许您在特定目录下覆盖服务器的全局配置,我们可以利用 FilesMatch 指令来匹配特定扩展名的文件,然后使用 Deny from all 指令来禁止所有对这些文件的访问。

dede 禁止执行权限 htaccess
(图片来源网络,侵删)

禁止在 uploadsdata 目录执行脚本(最常用)

这是 DedeCMS 最核心的安全设置。uploads 目录用于上传文件,data 目录用于存放缓存等数据,是黑客最常攻击的目标。

操作步骤:

  1. 找到 .htaccess 文件

    • 如果您的网站根目录下没有 .htaccess 文件,请新建一个。
    • 您可以使用 FTP/SFTP 客户端(如 FileZilla)连接到您的服务器,在网站的根目录(即包含 dede, include, uploads, data 等文件夹的目录)中找到它。
  2. 编辑 .htaccess 文件

    dede 禁止执行权限 htaccess
    (图片来源网络,侵删)
    • 使用文本编辑器(如 Notepad++, VS Code, Sublime Text)打开该文件。
    • 将以下代码添加到文件中,如果文件中已有其他内容,请将其添加到合适的位置(通常放在文件顶部)。
    # -----------------------------------------------------
    # DedeCMS 安全设置:禁止在特定目录执行脚本
    # -----------------------------------------------------
    # 1. 禁止在 uploads 目录下执行任何脚本
    <Directory "您的网站绝对路径/uploads">
        php_flag engine off
        <FilesMatch "\.(php|php5|phtml|pl|py|jsp|asp|sh|cgi)$">
            Order Deny,Allow
            Deny from all
        </FilesMatch>
    </Directory>
    # 2. 禁止在 data 目录下执行任何脚本
    <Directory "您的网站绝对路径/data">
        php_flag engine off
        <FilesMatch "\.(php|php5|phtml|pl|py|jsp|asp|sh|cgi)$">
            Order Deny,Allow
            Deny from all
        </FilesMatch>
    </Directory>
    # 3. (可选但推荐) 禁止在 templets 目录下执行任何脚本
    <Directory "您的网站绝对路径/templets">
        php_flag engine off
        <FilesMatch "\.(php|php5|phtml|pl|py|jsp|asp|sh|cgi)$">
            Order Deny,Allow
            Deny from all
        </FilesMatch>
    </Directory>
    # -----------------------------------------------------
  3. 修改绝对路径

    • 重要! 您必须将 "您的网站绝对路径/uploads" 替换为您服务器上 uploads 目录的真实绝对路径。
    • 如何找到绝对路径?
      • 通过 PHP 文件查看:在网站根目录创建一个名为 info.php 的文件,内容为 <?php phpinfo(); ?>,然后在浏览器中访问它,在输出的页面中找到 SCRIPT_FILENAMEDOCUMENT_ROOT,这通常能帮助您推断出路径。
      • 联系主机商:直接询问您的虚拟主机或云服务器提供商,您的网站根目录的绝对路径是什么。
      • 常见路径示例
        • /home/username/public_html/uploads
        • /var/www/vhosts/您的域名/httpdocs/uploads
        • /www/wwwroot/您的域名/uploads
  4. 保存并上传

    • 保存修改后的 .htaccess 文件。
    • 通过 FTP/SFTP 将其上传回服务器的网站根目录。

禁止上传特定类型的文件(更严格)

除了禁止执行,您还可以直接禁止上传某些高危类型的文件。

# -----------------------------------------------------
# DedeCMS 安全设置:禁止上传特定类型的文件
# -----------------------------------------------------
<FilesMatch "\.(php|php3|php4|php5|phtml|pl|py|jsp|asp|sh|cgi|exe|dll)$">
    Order Allow,Deny
    Deny from all
</FilesMatch>
# -----------------------------------------------------

注意:这段代码通常也放在 .htaccess 文件中,它会在整个网站范围内生效,防止用户通过表单上传这些类型的文件,但请注意,这可能会影响某些需要上传脚本的功能(比如某些复杂的插件),请谨慎使用。


仅允许访问特定文件(最严格)

如果您想在 data 目录中只允许访问 config.cache.php 等少数几个文件,可以使用下面的方法。

# -----------------------------------------------------
# DedeCMS 安全设置:仅允许 data 目录访问特定文件
# -----------------------------------------------------
<Directory "您的网站绝对路径/data">
    # 禁止所有访问
    Order Deny,Allow
    Deny from all
    # 但允许访问以下文件
    <Files "config.cache.php">
        Order Allow,Deny
        Allow from all
    </Files>
    # 如果还有其他需要允许的文件,继续添加
    <Files "index.html">
        Order Allow,Deny
        Allow from all
    </Files>
</Directory>
# -----------------------------------------------------

总结与最佳实践

  1. 首要任务务必为 uploadsdata 目录设置禁止执行权限,这是 DedeCMS 安全的基础。
  2. 路径正确:确保 .htaccess 中的 Directory 路径是您服务器上的绝对路径,而不是相对路径,路径错误将导致配置无效。
  3. 文件权限:确保 .htaccess 文件的权限设置为 644600,不要设置为 777,以免被篡改。
  4. 备份:在修改 .htaccess 文件前,最好先备份一份原始文件,以防修改出错导致网站无法访问。
  5. 测试:设置完成后,尝试在 uploads 目录下创建一个 test.php 文件,然后在浏览器中访问 http://您的域名/uploads/test.php,如果出现 403 Forbidden 错误,则说明配置成功。

通过以上设置,您可以极大地提高 DedeCMS 网站的安全性,有效防止上传漏洞带来的风险。

-- 展开阅读全文 --
头像
dede content_list空白是什么原因导致的?
« 上一篇 12-01
织梦dede datalist如何调用图片?
下一篇 » 12-02

相关文章

取消
微信二维码
支付宝二维码

目录[+]