我的服务器端 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 之后仍然遭到黑客攻击(数百封垃圾邮件) 的相关文章

  • Symfony2 Twig 扩展

    我在实现树枝扩展时遇到一些问题 我需要创建自己的过滤器 子过滤器 所以我想到了使用twig扩展 我在 MyApp Bundle WebsiteBundle 和文件上创建了一个名为 Extension 的文件夹 网站扩展 php namesp
  • 显示表中的记录

    我的第一个 PHP 项目遇到了一些麻烦 我试图从 MySQL 数据库 有 3 条记录 获取数据并将其显示在表格中 问题是它似乎只显示记录 2 和 3 它跳过了第 1 条记录 请参阅我的代码并在下面显示 if mysqli connect e
  • 是否必须配置 PHP 才能通过 PHP 扫描每个目录的配置 INI 文件(即我的情况下的 .htaccess 文件)?

    我在用着Windows 10 家庭单语言 64 位操作系统在我的机器上 我已经安装了最新的副本XAMPP服务器在我的机器上附带PHP 7 2 7 我从 PHP 手册中阅读了以下页面 扫描目录 https secure php net man
  • PHP - 获取base64图像字符串解码并保存为jpg(生成空图像)

    嗨 我实际上是通过 ajax 发送一个 base64 图像字符串到一个 php 脚本 该脚本只是解码字符串并将内容保存为 jpg 文件 但结果是一张空图像 这怎么可能 PHP脚本 uploadedPhotos array photo 1 p
  • 从 octobercms 中的非 ajax 表单获取输入值

    我正在尝试构建一个简单的搜索功能 下面是我的搜索表格
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • .htaccess 异常导致主目录出现问题

    这是我的目录结构 localhost or livehost app bootstrap public vendor code demo 这是我的 htaccess
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • 在字符串中间添加一个字符

    可能有一个简单的解决方案可以解决这个问题 但会引起面部表情 我将时间存储为 4 个字符长的字符串 即 1300 我试图将该字符串显示为 13 00 我觉得必须有一个比我现在正在做的更优雅的解决方案 我目前有 startTime get fi
  • 如何通过php的require()或include()函数传递变量?

    当我使用这个时 require diggstyle code php page page no 警告是 无法打开流 第 198 行 C xampp htdocs 4ajax gallery core php 中没有错误 错误是 Failed
  • 为什么验证不起作用并跳转到另一个页面?

    我写了一个customer display php来验证数据 到目前为止只有名字 但无论名字字段是否为空 网页都会跳转到customer search php并且没有更改数据库中的信息 为什么
  • 将 Google 信任徽章添加到 Magento

    我正在尝试将 Google Trust Badge 添加到我的 magento 商店 我尝试在 Magento 网站上搜索扩展程序 但找不到 我是否需要将以下代码粘贴到产品和结账页面 还是必须对其进行更改 如果有人能引导我走向正确的方向 我
  • 使用php将数据存储到文本文件中?

    我正在尝试将数据存储在文本文件中 例如使用 php 将数组存储到文本文件中 而不是存储到 mysql 数据库中 例如 这里是要存储在文本文件中的数据 name gt john age gt 25 location gt australia
  • fgetcsv 在特定行打开?

    有没有办法使用 fgetcsv 在特定行上打开 我有一个非常大的 csv 想通过 ajax 一次运行大约 100 行 我可以轻松停止 while 循环 但如何在特定行上打开 或者这是不可能的 从第 100 行开始读取没有简单的方法 但您可以
  • 自动建议 php 的 ajax

    我有一个 html 表单 php 脚本和 jquery 我需要一个 ajax 代码来从我的 php 脚本中进行自动建议 以下是代码 表单 html
  • Joomla 页面中的自定义 php 代码

    我正在尝试将 Joomla 1 5 9 页面中的表源从页面中的硬编码 html 更改为从 SQL 数据库获取信息 执行此操作的正确方法是什么 创建一个新的模型或组件并以某种方式在页面中使用它 我找到了这些 http docs joomla
  • WordPress 插件中的类自动加载器

    我想编写一个类自动加载器以在 WordPress 插件中使用 该插件将安装在多个站点上 我想尽量减少与其他插件发生冲突的机会 自动加载器将是这样的 function autoload name some code here 我的主要问题是
  • 检查条件并通过 Zend 中的 Regex 识别 url 中的模式

    我正在实现 Zend Regex 路由 并且必须对 url 执行多次检查 例如 如果这是我的网址 http localhost application public index php module controller action 这是
  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el
  • 一种无需 JavaScript 即可在 PHP 中确定浏览器宽度的方法?

    首先有吗 或者我必须使用javascript 我希望能够更改使用的 CSS 因此 frex 我可以为移动设备或其他设备加载较小的字体 不幸的是 仅使用 PHP 无法检测用户分辨率 如果您使用 Javascript 则可以在 cookie 中

随机推荐

  • 隐藏行后重新应用表条带化 (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 的新密码 并将我的索引文件移动到