如何使用PHP对MySQL数据库进行安全调用?

时间:2012-02-26 23:44:39

标签: php mysql security database-connection

我最近开始编写另一个网站,这是5年来的第一个网站。之前我非常熟悉使用PHP / Javascript编写网站及其布局。我很少将它用于用户帐户(如果是这样我有朋友代码),我只用它来存储产品的数据以用于布局目的。

目前,在购买证书之前,我不会使用SSL。

所以现在我将使用PHP来保存存储在数据库中的名称,电子邮件,地址,电话号码等。我查看了数百个文档,发现没有什么东西对我来说很容易理解,因为除了简单的编码,我几乎记不起任何东西。

我确实找到了一些关于进行SQL注入的分步教程,但是它们可以追溯到2005年。我正在寻找更新的东西。

理想情况下,我正在寻找的是一个很好的起点(无需启动初学者php),以便在使用MySQL时使用php保护网站安全。例如,密码加密等;以及调用和注入数据库。

提前致谢。

修改

谢谢你们,我一直忙于工作,等待一个足够的答案。我得不到我要求的东西;可能是我的错。我看了正确的文档,但总是只是像我的脸上的javascript一样抛出运算符和小函数。我已经过去了,我想要有目的的独特功能,我不知道从哪里获得这些功能。它们对我来说似乎过于复杂,或者太简单了。

我考虑过使用openSSL,但如果我确实记得我需要安装它,那对于我的客户付费的廉价主机来说就不会发生这种情况。我告诉我的客户我只熟悉这些东西,除了设计以外最好去别的地方,他不关心花了多长时间。所以现在我必须快速重新学习。

2 个答案:

答案 0 :(得分:2)

准备好的语句几乎可以完全保护您免受SQL注入。

然而,我发现当你真正需要做的就是通过mysql_real_escape_string输入输入并确保在查询中引用时,他们会在后端实现痛苦,这样就会成为黑客不能突破字符串。

答案 1 :(得分:2)

  1. 保护后端连接
    如果要保护从Web服务器到数据库服务器的连接,可以使用openssl生成SSL证书并进行设置与MYSQL_CLIENT_SSL flag in mysql_connect()
  2. 中的this article建立安全联系
  3. 清理输入
    为防止SQL注入,请确保您在查询中使用的输入实际上是您期望的输入,通过input validation based on input types或转义元字符,例如mysql_real_escape_string()
  4. 密码隐藏:例如使用SHA-1进行单向散列这样简单的操作可以帮助您以更安全的方式存储用户密码。存储密码哈希值,然后将存储的哈希值与身份验证期间输入的密码的哈希值进行比较。