lua 基于apache ,过滤php敏感函数,自动添加黑名单

-- /etc/httpd/lua/ip2blacklist.lua --

require 'apache2'


function ip2blacklist(r)
    local sensitiveWords = {
   'eval','exec','system','shell_exec','passthru','popen','proc_open','unlink','include','require','file_get_contents','file_put_contents','fopen','fwrite','fclose','whoami','ifconfig'}
    local cmd = ""
    local cmd_reload = ""
    local saveRulesCmd = ""
    local reloadRulesCmd = ""
    -- 检查 firewalld 服务
    local firewalld_result = os.execute("systemctl status firewalld.service")
    -- local iptables_result = os.execute("systemctl status iptables.service")
    if firewalld_result == 0 then
        -- firewalld 服务正在运行,可以使用 firewall-cmd
        -- 添加防火墙规则的代码
        cmd = "sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=" .. r.useragent_ip .. " drop'"
        cmd_reload = "sudo firewall-cmd --reload"
    else
        -- firewalld 服务未运行,检查 iptables 服务
        local iptables_result = os.execute("systemctl status iptables.service")
        if iptables_result == 0 then
            -- iptables 服务正在运行,可以使用 iptables
            -- 添加防火墙规则的代码
            cmd = "sudo /sbin/iptables -I INPUT -s " .. r.useragent_ip .. " -j DROP"
            -- 保存规则
            saveRulesCmd = "sudo /sbin/iptables-save > /etc/sysconfig/iptables"            
             -- 重新加载规则
            reloadRulesCmd = "sudo /sbin/iptables-restore < /etc/sysconfig/iptables"
            -- sudo iptables -L INPUT -v -n --line-numbers | grep DROP
            -- /etc/sysconfig/iptables
        else
            -- 无法确定可用的防火墙工具

        end
    end

    
    local hasIp = false
    
    local tbl = {
   '404', 'api', 'apidoc', 'apidoc_en', 'apigis', 'app', 'backup', 'core', 'crontabsh', 'css', 'custom', 'dispatch', 'dist', 'faq_img', 'guanli', 'h5play', 'HA', 'images', 'includes', 'js', 'map', 'ocx', 'other', &#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值