了解PHP和MySQL安全的基础知识
我一直避免学习PHP和MySQL,因为我在互联网上读到PHP不是一种安全的语言,而且数据库存在安全风险(SQL注入等) 我想了解的主要问题是,糟糕的PHP/MySQL代码通常会造成何种类型的损坏。换句话说,当编写糟糕的代码时,数据库或整个服务器中的信息会有什么风险 我知道这可能是一个复杂的主题,但我只想简单解释一下当数据库或PHP脚本被破坏时,哪些信息通常会受到影响了解PHP和MySQL安全的基础知识,php,mysql,sql,database,security,Php,Mysql,Sql,Database,Security,我一直避免学习PHP和MySQL,因为我在互联网上读到PHP不是一种安全的语言,而且数据库存在安全风险(SQL注入等) 我想了解的主要问题是,糟糕的PHP/MySQL代码通常会造成何种类型的损坏。换句话说,当编写糟糕的代码时,数据库或整个服务器中的信息会有什么风险 我知道这可能是一个复杂的主题,但我只想简单解释一下当数据库或PHP脚本被破坏时,哪些信息通常会受到影响 当一个数据库被破坏时,这是否意味着整个服务器可能处于危险之中,或者仅仅是数据库及其内容 当一个PHP脚本被破坏时,这是否意味着整
很抱歉问了这么多基本的问题,但在我继续之前,我需要了解这一点。关于SQL注入。。。当数据直接连接到命令中时,可能会将数据与命令混淆。这几乎适用于任何情况,但我们在web应用程序上经常看到SQL注入攻击的形式。例如:
$evil_user_input = '0; DELETE FROM someTable WHERE 1=1';
mysql_query('SELECT * FROM someOtherTable WHERE fieldA = ' . $evil_user_input);
在实践中,一次只能运行一个查询,因此您必须变得狡猾,但这里的要点是,如果不在SQL中使用转义,数据应该是什么可能是不明确的。这超出了安全范围。假设您有一个用户键入引号的字段。现在您已经破坏了SQL,代码崩溃了
1-当数据库被破坏时,这是否意味着整个服务器可能处于危险之中,或者仅仅是数据库及其内容
2-当一个PHP脚本被破坏时,这是否意味着整个服务器可能处于风险之中,或者仅仅是脚本和任何相关内容的风险
现在,当数据库被破坏,或者脚本被破坏时,不可能概括出问题所在。这完全取决于袭击是什么。你不能肯定任何东西都是真正孤立的,因为许多攻击依赖于许多碎片。当事情发生时,您需要使用日志和其他证据来找出发生了什么,然后修复它
3-创建数据库时,与数据库的连接最重要的是什么
正确使用准备好的/参数化的语句,您不必担心SQL注入攻击。与数据库服务器本身的连接应通过安全隧道进行。大多数数据库连接协议本身都不安全。。。它们是为速度而建造的。如果您是通过本地主机访问数据,则不需要隧道。这太广泛了。然而,为了解决您的问题,PHP并不比任何其他语言更不安全。如果使用不当,所有语言都是不安全的。当您编写错误的代码时,整个服务器可能处于风险之中,或者可能只是数据库,这取决于问题的性质。假设一切都处于危险之中。您应该花一些时间阅读。我认为PHP有不安全的名声,因为有一段时间,它不支持预先准备好的语句(尽管这也被修复了很长时间)。即使是现在,我看到很多人编写的代码没有使用它们,而且他们的代码非常容易受到攻击。安全性与编程语言无关。重要的是你编写的代码,还有其他一些东西。当PHP脚本被破坏时,这是否意味着整个服务器都可能处于危险之中?一般来说,如果PHP脚本被破坏,远程攻击者就可以以web服务器用户的身份运行PHP。这意味着他们也可以像该用户一样读取、写入和删除文件。数据库内容可能被盗,并安装垃圾邮件中继,具体取决于攻击对象和原因。大多数自动攻击都是为了安装僵尸网络或垃圾邮件中继。这和@halfer的评论回答了我的问题。谢谢。