我的服务器端 PHP 在 reCaptcha 之后仍然遭到黑客攻击(数百封垃圾邮件)

2024-02-28

我之前在 StackOverflow 上提出的问题是,有人每隔几个小时向我发送数百封垃圾邮件。现在,我在服务器端修复了脚本,但第二天早上我仍然收到 30 封电子邮件之类的东西,我的托管公司给了我一个 FTP 的新密码,并将我的索引文件移动到备份地图(网站离线),他们说由于以下可疑脚本而被黑客攻击。他们说:“这种情况通常是通过网站中泄露的脚本发生的,这是一个“过时”的脚本。这是什么意思?他们在电子邮件中说这个脚本文件有问题。这是不可能入侵的因为我在服务器端使用了reCaptcha,是不是少了什么?

<?php

if(isset($_POST['g-recaptcha-response'])){
      $captcha=$_POST['g-recaptcha-response'];


      }


/* OUTCOMMENTED CODE BELOW DOESN'T LET FORM SEND IF EVERYTHING IS CHECKED???? 


    if(!$captcha){
          echo '<h2>Check captcha .</h2>';
          exit;
        }*/



    $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=(SECRETKEY)&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
            if($response.success==false)
            {
                echo '<span id="status" style="font-size:1vmax;color:red;">ReCaptcha ERROR</span>';
            }else
            {

        if( isset($_POST['n']) && isset($_POST['e']) && isset($_POST['mn']) && 

isset($_POST['m']) ){
        $n = $_POST['n']; // HINT: use preg_replace() to filter the data
        $e = $_POST['e'];
        $mn = $_POST['mn'];
        $m = nl2br($_POST['m']);
        $to = "[email protected] /cdn-cgi/l/email-protection"; 
        $from = $e;
        $subject = 'Contact Formulier-eng';
        $message = '<b>Naam:</b> '.$n.' <br><b>Email:</b> '.$e.' <br><b>Mobiel-nummer:</b> '.$mn.' <p>'.$m.'</p>';
        $headers = "Van: $from\n";
        $headers .= 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        if( mail($to, $subject, $message, $headers) ){
            echo "success";
        } else {
            echo "The server failed to send a message. Please try again later. Thank you!";
        }
    }
        }
    ?>

我刚刚再次上传,看看现在会发生什么。有人可以帮我确保这个文件对于黑客来说是安全的吗?没有人真正帮助解决上一个问题,而只是在没有代码的情况下提供建议(我是菜鸟)。

(第 8 行周围的注释代码不起作用,我不明白,有人知道为什么有人可以侵入它吗?)

是的,HTML 中的验证码代码与公钥有很好的链接


$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=(SECRETKEY)&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
if($response.success==false)

不幸的是,这段代码是一些废话,它已经出现在很多(糟糕的)教程中。它不提供任何保护——条件总是错误的,因为$response.success被解释为连接常量successreCaptcha API 返回的 API 响应。这将导致验证码始终被视为有效,无论用户的输入如何。

使用 Google reCaptcha 库验证来自 reCaptcha API 的响应。它可以在以下位置获得:https://github.com/google/recaptcha https://github.com/google/recaptcha

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的服务器端 PHP 在 reCaptcha 之后仍然遭到黑客攻击(数百封垃圾邮件) 的相关文章

  • 未捕获的异常“Google_IO_Exception”,消息为“HTTP 错误:无法连接”

    我有一个任务 查询 运行一些从 gmail 邮箱检索数据的 php 代码 直到上周五 2015 年 4 月 10 日 它一直工作正常 现在我收到以下错误日志 E 11 58 26 094 2015 04 15 200 3 38 KB 14
  • 使用PHP套接字发送和接收数据

    我正在尝试通过 PHP 套接字发送和接收数据 一切正常 但是当我尝试发送数据时 PHP 不发送任何内容 Wireshark 告诉我发送的数据长度为 0 我正在使用这段代码
  • PHP中如何识别服务器IP地址

    PHP中如何识别服务器IP地址 对于服务器 ip 来说是这样的 SERVER SERVER ADDR 这是港口的 SERVER SERVER PORT
  • 如何在没有引用的情况下复制对象?

    PHP5 OOP 有据可查对象通过引用传递 http php net manual en language oop5 references php默认情况下 如果这是默认的 在我看来 有一种非默认的方式可以在没有参考的情况下进行复制 如何
  • 将数组拆分为特定数量的块

    我知道array chunk 允许将数组拆分为多个块 但块的数量根据元素的数量而变化 我需要的是始终将数组拆分为特定数量的数组 例如 4 个数组 以下代码将数组分为 3 个块 两个块各有 2 个元素 1 个块有 1 个元素 我想要的是将数组
  • 如何从字符串中删除所有数字?

    我想删除字符串 0 9 中的所有数字 我写了这段有效的代码 words preg replace 0 words remove numbers words preg replace 1 words remove numbers words
  • 检查文件权限

    我怎样才能检查file permissions 无需通过运行操作系统特定命令passthru or exec Use 文件权限 http php net fileperms功能 clearstatcache echo substr spri
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function
  • 包含包含文件的 php 文件

    这是目录结构 global php includes class bootstrap php includes init php plugins myplugin php 这是这些文件中的代码 start php require inclu
  • 来自本地 XML 的模拟 SoapClient 响应

    我想用文件中的 XML 来模拟 SoapClient 的响应 我如何创建一个 stdClass 对象 就像 SoapClient 从文件返回一样 客户端已经包装了 SoapClient 因此可以轻松模拟响应 我的模拟是这样的 soapCli
  • 在 Laravel 中动态设置数据库连接和语言

    我有 3 个域指向同一个Laravel应用 我想要的是每个人都连接到自己的数据库并根据 TLD 加载自己的语言文件 我可以在哪个文件中设置这些设置 我可以直接在配置文件中执行此操作 或者可以在加载配置之前执行某些事件 我拥有的是一个简短的函
  • 具有更改用户代理上下文的 file_get_contents 不起作用

    我正在尝试获取页面的阅读数和点赞数 网址是 https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg 您必
  • Windows iis 7.0 上的 APC 不稳定

    我的 IIS 非常不稳定 因为它总是由于某种与 APC 相关的原因而重新启动 服务器的规格如下 Intel R Xeon CPU 3GHZ 3GHZ 2GB RAM 64bit APC 和服务器规格 3 1 7 dev PHP Versio
  • MySQL 数据库无法在 XAMPP for Mac 上启动

    突然我在 mac 上遇到了这个问题 我无法启动我的 MySQL 数据库 我只能启动 ProFTPD 和 Apache Web Server 这是应用程序日志 Starting all servers Starting MySQL Datab
  • PHP 错误:“无法通过引用传递参数 2”

    我只是需要有关这个 PHP 错误的帮助 我不太明白 致命错误 无法在第 13 行 web stud openup inactivatesession php 中通过引用传递参数 2
  • UTF-8、PHP、Win7 - 现在是否有解决方案可以使用 php 在 Win 7 上保存 UTF-8 文件名?

    更新 只是为了不让您阅读所有内容 PHP 开头 7 1 0alpha2 在 Windows 上支持 UTF 8 文件名 感谢阿纳托尔 贝尔斯基 根据 stackoverflow 上的一些链接 我找到了部分答案 https stackover
  • 更改API数据输出的布局

    我是 API 集成和 PHP 的新手 我最近将 VIN 解码器集成到我的应用程序中 在输入框中输入车辆的 VIN 选择提交 然后就会显示 API 数据库中有关该车辆的所有信息 数据存储为关联数组 其中包含类别及其相应元素 例如 对于 VIN
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • HTML 代码中的 PHP [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我用 HTML 代码编写了 PHP div div 但这出现在输出页面中 else print 我怎样才能让PHP执行 你的文件有一个 p
  • PHP 中的多个插入查询[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个 php html 表单 它将结果插入到狗展数据库中 问题是 无论我做什么 我都会收到此错误 查询失败 您的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册 了解在 INSE

随机推荐

  • 隐藏行后重新应用表条带化 (Twitter Bootstrap)

    我正在使用 Bootstrap 并且有一个条带表 可以通过选择表单上的一些选项来过滤该表 JavaScript 解释表单输入 并隐藏表中与所选条件不匹配的行 但是 这会破坏表上的表条带化 具体取决于隐藏的行 灰色行紧邻灰色行 白色行紧邻白色
  • 使用 JSP 从服务器检索并显示图像

    我有一段代码可以帮助我将图像保存在服务器上 我需要知道如何在 div 上显示保存的图像 JSP代码
  • vis.js 分层布局中的级别排序

    我有一个相当简单的节点层次结构 但是当 vis js 绘制它们时 每个级别上的节点顺序没有多大意义 有很多交叉边 屏幕截图 默认布局 https i stack imgur com Y3VtI jpg 我希望得到与此处给出的布局类似的布局
  • 用于编辑 .fla 文件的免费 Flash IDE

    我们有一个 fla 文件 我们需要一个 IDE 来打开 fla 文件并调试操作脚本 我们尝试了 Flash Develop 开源 但该 IDE 无法打开 fla 文件 是否有任何其他免费 开源 IDE 我们可以用来打开和调试 fla 文件
  • 使用 JQuery Datepicker 仅显示月份

    我希望能够使用JQuery UI 日期选择器 http jqueryui com demos datepicker 允许用户选择特定月份 但无法选择该月中的特定日期 日期选择器上的前进和上一步按钮会将用户带到不同的位置years 而不是不同
  • 需要想法:选择表中的行

    我正在为客户开发一个网站 它需要一种特殊的方式来创建计算 在表中 我必须创建具有相同 End 的行组 由于一开始只有一行 90 日期为 2011 年 11 月 24 日 因此您可以忽略它 例如 我必须选择带有日期的行 2011 年 11 月
  • Xlib 截图调用

    看到问题后如何在Linux中截图 高fps 编程 https stackoverflow com questions 25162580 how to take screenshot high fps in linux programming
  • 是否可以在 SASS 或 LESS 中将一个类或标签别名为另一个类或标签?

    我正在尝试使用 Less 或可能使用 Sass 使我的 bootstrap 2 1 标记更加语义化 考虑 Bootstrap 标准导航栏的以下标记
  • STL自定义分配器来管理不同的内存空间

    我想使用 STL 自定义分配器类的不同实例来管理不同的内存空间 然后能够为 STL 容器指定分配器实例 以便每个容器仅从其分配的内存空间中提取 但我不知道如何才能做到这一点 我了解如何将分配器类型传递到 STL 容器的模板参数中 但我想要类
  • 何时在 Node js 中使用 eventEmitter?

    我正在学习 Node js 中的新概念 即事件 但我找不到应该在哪里使用它 我想要任何真实的场景 但我找不到任何关于此的文章或博客 var events require events var eventEmitter new events
  • Haskell 使用什么类型的范围?

    我试图弄清楚 Haskell 是否使用动态或静态作用域 我意识到 例如 如果您定义 let x 10 然后定义函数 let square x x x 您有 2 个不同的 x 这是否意味着它是动态作用域的 如果不是 它使用什么范围 为什么 另
  • 如何将 json 字符串数据类型列转换为 hive 中的映射数据类型列?

    我需要从所有行中获取所有唯一的键值 每行都有不同的键和值请找到上面的专栏图片 例如 一排看起来像 START TIME 1549002807568 PARSING QUERY FORMED 1549002807586 CUBES WITH
  • Angular 2 路由 - 隐藏 URL

    我知道你可以在路由时隐藏 URLthis router navigate Pages skipLocationChange true 但是当我使用window open Pages 它有网址 有没有办法在使用时隐藏URLwindow ope
  • jquery ajax 中 async:false 和 async:true 有什么区别?

    jquery ajax中有一个参数 ajax async true 将值设置为有什么区别true and false You set async to false 当您需要在浏览器传递给其他代码之前完成 ajax 请求时
  • Python 推送器 AWS Lambda

    使用 AWS Lambda 将推送通知发送到 Python 中的 Pusher 应用程序 当我将 Pusher 及其所有依赖项安装到一个目录并压缩到 Lambda 时 我运行了一个简单的测试并收到此错误 No module named nd
  • 运行jsp文件时类转换异常

    我正在尝试运行我的 jsp 文件之一 但遇到类转换异常 org apache catalina core DefaultInstanceManager 无法转换为 org apache tomcat InstanceManager 我已将所
  • protobuf 具有继承性?

    是否可以使用protobuf http code google com p protobuf 与继承的类 我想做这样的事情 class Expr class AddExpr Expr class CallFunc Expr class Fu
  • Ionic 3:使用蓝牙打印机打印图像

    我目前正在努力使用我们的 Ionic3 应用程序 我似乎不知道如何使用 BT 打印机和蓝牙串行插件打印图像 打印文字就好了 我们正在使用此文档测试 RPP02N BU 打印机 由我的前同事找到 驱动程序命令文档 https www spar
  • cmake 中“不允许源内构建”

    我是 cmake 的新手 我只用它在我的 ubuntu linux 上安装 opencv 这是我运行的命令 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX home jinha O
  • 我的服务器端 PHP 在 reCaptcha 之后仍然遭到黑客攻击(数百封垃圾邮件)

    我之前在 StackOverflow 上提出的问题是 有人每隔几个小时向我发送数百封垃圾邮件 现在 我在服务器端修复了脚本 但第二天早上我仍然收到 30 封电子邮件之类的东西 我的托管公司给了我一个 FTP 的新密码 并将我的索引文件移动到