Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
了解PHP和MySQL安全的基础知识_Php_Mysql_Sql_Database_Security - Fatal编程技术网

了解PHP和MySQL安全的基础知识

了解PHP和MySQL安全的基础知识,php,mysql,sql,database,security,Php,Mysql,Sql,Database,Security,我一直避免学习PHP和MySQL,因为我在互联网上读到PHP不是一种安全的语言,而且数据库存在安全风险(SQL注入等) 我想了解的主要问题是,糟糕的PHP/MySQL代码通常会造成何种类型的损坏。换句话说,当编写糟糕的代码时,数据库或整个服务器中的信息会有什么风险 我知道这可能是一个复杂的主题,但我只想简单解释一下当数据库或PHP脚本被破坏时,哪些信息通常会受到影响 当一个数据库被破坏时,这是否意味着整个服务器可能处于危险之中,或者仅仅是数据库及其内容 当一个PHP脚本被破坏时,这是否意味着整

我一直避免学习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的评论回答了我的问题。谢谢。