Php 什么';这是在网站上记录用户输入数据的最简单、最安全的方法

Php 什么';这是在网站上记录用户输入数据的最简单、最安全的方法,php,security,web-services,Php,Security,Web Services,抱歉,这是一个非常简单的问题,会让你们大多数人感到厌烦 我需要实现最简单的“留下你的电子邮件,我们会联系你”网页。我能想到的最简单的事情就是做一个HTML表单,它调用一个PHP脚本,将数据附加到服务器上的某个文件中。很容易实现,但现在我想知道它是否完全可以被破解。它是?有没有更简单的方法 谢谢 没关系,但是你可以找到一个完整的数据库或者更好的选择 只需确保您将文件放在其他用户无法访问的位置(例如,web服务器根目录之外或受保护的目录中),否则每个人都可以看到注释。没关系,但您可以找到完整的数据库

抱歉,这是一个非常简单的问题,会让你们大多数人感到厌烦

我需要实现最简单的“留下你的电子邮件,我们会联系你”网页。我能想到的最简单的事情就是做一个HTML表单,它调用一个PHP脚本,将数据附加到服务器上的某个文件中。很容易实现,但现在我想知道它是否完全可以被破解。它是?有没有更简单的方法

谢谢


没关系,但是你可以找到一个完整的数据库或者更好的选择


只需确保您将文件放在其他用户无法访问的位置(例如,web服务器根目录之外或受保护的目录中),否则每个人都可以看到注释。

没关系,但您可以找到完整的数据库或更好的选项


只需确保您将文件放在其他用户无法访问的位置(例如,web服务器根目录之外或受保护的目录中),否则每个人都可以看到注释。

无论您选择何种解决方案(文件、数据库、电子邮件等),安全性将取决于您实现它的方式:

  • 你是如何过滤输入的
  • 每个ip地址允许多少次提交
  • 等等

无论您选择何种解决方案(文件、数据库、电子邮件等),其安全性将取决于您的实施方式:

  • 你是如何过滤输入的
  • 每个ip地址允许多少次提交
  • 等等

    • 您可以做一些事情。首先,因为您正在记录电子邮件地址,所以可以使用PHP的mail()函数将电子邮件发送到某个集中的地方

      这听起来像一个beta注册页面,如果你没有可用的数据库,文件就可以了。只需确保文件存储在服务文件夹之外(例如,在public_html之上)


      还要确保您使用正则表达式或清除数据,以便有人不能将其用作垃圾邮件的僵尸形式。只需在第一次输入后切断电子邮件地址输入,\r\n即可解决问题。

      您可以做几件事。首先,因为您正在记录电子邮件地址,所以可以使用PHP的mail()函数将电子邮件发送到某个集中的地方

      这听起来像一个beta注册页面,如果你没有可用的数据库,文件就可以了。只需确保文件存储在服务文件夹之外(例如,在public_html之上)


      还要确保您使用正则表达式或清除数据,以便有人不能将其用作垃圾邮件的僵尸形式。只需在第一次之后切断电子邮件地址输入,\r\n即可解决问题。

      如果您决定使用数据库(如果可以,我会:),请确保在将其插入数据库之前检查所有数据()


      我会使用数据库,因为它可以使分析数据,甚至在页面上以良好的格式输出数据变得更加容易。

      如果您决定使用数据库(如果可以,我会:),请确保在将数据插入数据库之前,先检查所有数据()


      我会使用数据库,因为它可以使分析数据,甚至在页面上以良好的格式输出数据变得更加容易。

      可黑客攻击,您的意思是有人会损坏您的文件吗?还是读?或如果我想照你说的做,我会这样做:

      <?php
      if(isset($_POST['submit_button_name'])){
          $email = htmlentities($_POST['email_address_field_name'], ENT_QUOTES);
          $handle = fopen("email_list.txt", "a");
          fwrite($handle, "\n".$email);
          fclose($handle);
      }
      ?>
      
      <form> ... </form>
      
      
      ... 
      

      从某种意义上说,它是私有的,因为有人不知道在哪里可以找到它,而且是安全的,因为我使用了htmlentities()函数来删除任何可能的XS。

      通过hackable,您的意思是有人会损坏您的文件吗?还是读?或如果我想照你说的做,我会这样做:

      <?php
      if(isset($_POST['submit_button_name'])){
          $email = htmlentities($_POST['email_address_field_name'], ENT_QUOTES);
          $handle = fopen("email_list.txt", "a");
          fwrite($handle, "\n".$email);
          fclose($handle);
      }
      ?>
      
      <form> ... </form>
      
      
      ... 
      

      从某种意义上说,它是私有的,因为有人不知道在哪里可以找到它,而且是安全的,因为我使用了htmlentities()函数来删除任何可能的XS。

      我没有得到“截断”注释。它能解决什么问题?如果我想要两个段落呢?啊,对不起,我没有得到它只是一封电子邮件。是的,只是在电子邮件地址字段上,否则它可能会塞满多个地址。如果您没有使用mail(),这很可能不是问题,但它会减少文件中的垃圾邮件混乱。我没有收到“切断”评论。它能解决什么问题?如果我想要两个段落呢?啊,对不起,我没有得到它只是一封电子邮件。是的,只是在电子邮件地址字段上,否则它可能会塞满多个地址。如果您不使用mail(),这很可能不是问题,但它会减少文件中的垃圾邮件。实际上,您不能使用xss,因为它位于.txt文件中。虽然我担心编写的php代码可能包含在高级LFI攻击中。我担心有人访问email_list.txt并窃取电子邮件地址,但从上面的评论来看,这应该是可以管理的。顺便说一句,有没有一种明显的方法可以让某人访问我的php脚本的源代码,从而知道我正在email_list.txt中保存电子邮件地址?我有点假设这将以在浏览器中查看页面的HTML源代码的相同方式完成,但无法复制它。@Rook:啊,是的,很好@fred august:PHP是“服务器端”处理的,这意味着它都是在服务器上解析的;只有您的客户端代码(例如HTML)才可供公众查看。实际上,您不能使用xss,因为它位于.txt文件中。虽然我担心编写的php代码可能包含在高级LFI攻击中。我担心有人访问email_list.txt并窃取电子邮件地址,但从上面的评论来看,这应该是可以管理的。顺便说一句,有没有一种明显的方法可以让某人访问我的php脚本的源代码,从而知道我正在email_list.txt中保存电子邮件地址?我有点假设这将以查看页面的HTML源代码的相同方式完成