从前端

时间:2016-10-09 13:58:27

标签: php curl

可能我的问题是寻找意见,但我在互联网上的研究并没有给我一个好主意。

这是为我们团队提供的测试项目,我学习如何提高我们的研发技能和解决问题的技巧。

项目描述:

我们的项目中注册了n个用户。用户数据存储在数据库表中。提供具有SELECT,UPDATE权限的一个数据库用户。教师要求我们创建一个服务来执行一些数据库操作。 1.登录&注册,2。为其帐户创建一些基本配置文件,3。更新配置文件。

因此,对于登录,我们创建了PHP文件夹的注册目的。一个用于前端,另一个用于数据库操作。我们之所以这样做是为了分离前端操作的PHP文件和执行数据库操作的PHP文件。因为将这两者分开可以减少使用可用代码破坏数据库的可能性。如果我们的公共网站被黑客入侵,黑客可能只有基本的HTML和PHP文件,他可能无法获得第二台服务器中的数据库名称,数据库用户,加密密钥等的详细信息。

第一个项目中的 login.php 将获取,清理用户输入并将数据发送到第二个服务器,第二个服务器检查用户密码哈希与电子邮件并返回响应以JSON格式返回第一台服务器。根据JSON响应,将重定向用户或执行任何预期的操作。

注意:在数据库操作之前,在第二台服务器中完成清理。

我的疑虑是,

  1. 服务器1和服务器2之间通信的最佳和有效方法是什么。
  2. 我读了一些关于cURL的内容。对于上面解释的场景,cURL是一种更好,更安全的方法吗?有没有比cURL更好的方法?
  3. 在cURL是解决方案的情况下,对于连续的服务器到服务器数据传输,它是否可靠?它会降低客户的响应速度吗?
  4. 我们的逻辑效率如何?现有哪些更好的方法?

1 个答案:

答案 0 :(得分:0)

如果您清理用户输入数据,则不需要第二台服务器。

如果要使用第二台服务器,通讯应该在专用网络上。如果请求是在公共网络上发送的,则应使用HTTPS,否则密码容易受到攻击。

是的,它会减慢响应速度。您通过添加另一个往返HTTP请求来注入延迟。

卷曲是非常可靠的,并将完成这项工作。如果不是更好的话,file_get_contents()也会起作用。

您可以拨打公共网络无法访问的私人文件夹中的例程,而不是第二台服务器。

<强>更新 首先,很少有网站拥有攻击者可能想要的数据。数据非常敏感,可能会受到攻击,因此第二台服务器是保护数据的好方法。我不是黑客,但我可以像一个人一样思考。偶尔会发现服务器可能受到攻击的漏洞。或者,如果PHP的MIME类型错误配置,PHP代码将作为文本而不是执行。

攻击通常由重复尝试登录的机器人执行。您可以计算每个IP地址在一段时间内尝试登录的次数。如果他们试图以比人类更快的速度登录,请禁用ip。

如果提交的数据已正确清理,则会规避SQL注入。我还想知道是否有人通过分析提交的数据来尝试SQL注入,寻找常见的注入关键字。

我仍然不知道如何破解第二台服务器上的数据。这将是一个很好的问题,这第二种服务器方法是否易受攻击。

我尽可能在<input>字段中使用非零数字,然后使用intval()floatval()进行清理。我永远不会使用电子邮件地址作为用户名。