gpt4 book ai didi

php - 设置 mySql 服务器和 Xampp 现在需要了解基本的安全性

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:55 24 4
gpt4 key购买 nike

再次,我问的是最基本的问题......

奇迹般地,我安装了 mySql 服务器并使用 Workbench 应用程序创建了我的第一个表。在一周内,我学到了足够多的 PHP 来制作一个如此脆弱的应用程序,我将其丢弃并重新开始。我想将开发转移到我的本地机器上,所以我只是让 Xampp 运行并使用它来毫无问题地启动 mySql 服务器。我怎么可能在不输入凭据的情况下启动服务器?我使用 Workbench 设置 mySql Server 密码。我还没有在服务器上使用命令行。我使用 chrome 打开了 localhost,它显示了一个 IP 地址。关于基本安全,接下来我需要做什么?感谢您花时间阅读本文。

最佳答案

基础知识

让我们了解 PHP 的工作原理;当您编写 PHP 代码时,这意味着位于 <?php ... ?> 中的代码,它将在服务器上执行,在本例中是您的 XAMPP 实例。

这意味着每当用户访问该网站时,他/她将无法真正看到您编写的代码,相反,他们将看到该代码的呈现。

渲染将是 echo 之后的任何内容, print_r , var_dump , 或者在你的 PHP 括号之外。

当连接到您的数据库时,您可以采取某些步骤来保护它,但是,这实际上不是必需的。看看 Laravel 的 Eloquent 系统就知道了。您的实际数据库信息完全存储在您的 .env 中文件。

例子

现在,在考虑安全性的情况下进行开发时,您必须小心,要牢记以下重要规则:

  1. 始终过滤用户输入

这个应该是给定的;但是新网站日复一日地遭到黑客攻击,因为输入没有被正确过滤,允许任何人将代码注入(inject)脚本——无论是在 SQL 实例还是前端 JavaScript 代码。

一个很好的方法是始终转换您真正要找的东西; PHP 是一种弱类型语言。这意味着 '1' == 1 . ('1' 是字符串,1 是整数)

绕过这个的一种方法是通过 casting types在处理用户输入时。了解您的数据库需要什么。无论是字符串、整数还是 bool 值。这将使您能够确定数据库请求仅使用正确的类型。

例如:

$var = (integer) 'Hello';
var_dump($var); // returns `int(0)`
  1. 使用准备好的语句

它们并不难,而且在安全性方面非常基础 - 这是使用用户数据的最佳方式之一,而无需将其直接插入您的 SQL 查询之一。

一个非常糟糕的查询示例:

$sql = 'SELECT * FROM users WHERE id = ' . $id;
$query = $connection->query($sql);

你应该选择做的是:

$sql = 'SELECT * FROM users WHERE id = ?';
$stmt = $connection->prepare($sql);
$stmt->bind_param('i', $id);
$stmt->execute();

拜托,read more here .

最后的想法

您似乎对编程还很陌生。关注安全性是件好事,因为它是优秀 Web 应用程序最重要的支柱之一。但是,我的最终建议是让您从基础开始。了解 PHP 文化,了解并理解 PHP 的工作原理,然后在安全性方面您将能够取得更多成就。

与 PHP 一起学习 Apache 以及如何发出请求,彻底了解 HTTP 请求,这将使您更好地了解构建安全应用程序时必须考虑的所有因素。您可能拥有世界上最棒的 PHP 代码,但如果您的 HTTP 协议(protocol)未使用 SSL,那么任何发送到您服务器的请求都在 plaintext 中。让全世界都看到。

关于php - 设置 mySql 服务器和 Xampp 现在需要了解基本的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52657585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com