- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
再次,我问的是最基本的问题......
奇迹般地,我安装了 mySql 服务器并使用 Workbench 应用程序创建了我的第一个表。在一周内,我学到了足够多的 PHP 来制作一个如此脆弱的应用程序,我将其丢弃并重新开始。我想将开发转移到我的本地机器上,所以我只是让 Xampp 运行并使用它来毫无问题地启动 mySql 服务器。我怎么可能在不输入凭据的情况下启动服务器?我使用 Workbench 设置 mySql Server 密码。我还没有在服务器上使用命令行。我使用 chrome 打开了 localhost,它显示了一个 IP 地址。关于基本安全,接下来我需要做什么?感谢您花时间阅读本文。
最佳答案
让我们了解 PHP 的工作原理;当您编写 PHP 代码时,这意味着位于 <?php ... ?>
中的代码,它将在服务器上执行,在本例中是您的 XAMPP 实例。
这意味着每当用户访问该网站时,他/她将无法真正看到您编写的代码,相反,他们将看到该代码的呈现。
渲染将是 echo
之后的任何内容, print_r
, var_dump
, 或者在你的 PHP 括号之外。
当连接到您的数据库时,您可以采取某些步骤来保护它,但是,这实际上不是必需的。看看 Laravel 的 Eloquent 系统就知道了。您的实际数据库信息完全存储在您的 .env
中文件。
现在,在考虑安全性的情况下进行开发时,您必须小心,要牢记以下重要规则:
这个应该是给定的;但是新网站日复一日地遭到黑客攻击,因为输入没有被正确过滤,允许任何人将代码注入(inject)脚本——无论是在 SQL 实例还是前端 JavaScript 代码。
一个很好的方法是始终转换您真正要找的东西; PHP 是一种弱类型语言。这意味着 '1' == 1
. ('1'
是字符串,1
是整数)
绕过这个的一种方法是通过 casting types在处理用户输入时。了解您的数据库需要什么。无论是字符串、整数还是 bool 值。这将使您能够确定数据库请求仅使用正确的类型。
例如:
$var = (integer) 'Hello';
var_dump($var); // returns `int(0)`
它们并不难,而且在安全性方面非常基础 - 这是使用用户数据的最佳方式之一,而无需将其直接插入您的 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/
我开始在 Ethereum blockchain 上了解如何开发智能合约以及如何写 web-script用于与智能合约交互(购买、销售、统计......)我得出了该怎么做的结论。我想知道我是否正确理解
我正在 UIView 中使用 CATransform3DMakeRotation,并且我正在尝试进行 45º,变换就像向后放置一样: 这是我拥有的“代码”,但显然没有这样做。 CATransform3
我目前正在测试 WebRTC 的功能,但我有一些脑逻辑问题。 WebRTC 究竟是什么? 我只读了“STUN”、“P2P”和其他...但是在技术方面什么是正确的 WebRTC(见下一个) 我需要什么
我在看 DelayedInit在 Scala in Depth ... 注释是我对代码的理解。 下面的 trait 接受一个非严格计算的参数(由于 => ),并返回 Unit .它的行为类似于构造函数
谁能给我指出一个用图片和简单的代码片段解释 WCF 的资源。我厌倦了谷歌搜索并在所有搜索结果中找到相同的“ABC”文章。 最佳答案 WCF 是一项非常复杂的技术,在我看来,它的文档记录非常少。启动和运
我期待以下 GetArgs.hs打印出传递给它的参数。 import System.Environment main = do args main 3 4 3 :39:1: Coul
private int vbo; private int ibo; vbo = glGenBuffers(); ibo = glGenBuffers(); glBindBuffer(GL_ARRAY_
我正在尝试一个 for 循环。我添加了一个 if 语句以在循环达到 30 时停止循环。 我见过i <= 10将运行 11 次,因为循环在达到 10 次时仍会运行。 如果有设置 i 的 if 语句,为什
我正在尝试了解 WSGI 的功能并需要一些帮助。 到目前为止,我知道它是一种服务器和应用程序之间的中间件,用于将不同的应用程序框架(位于服务器端)与应用程序连接,前提是相关框架具有 WSGI 适配器。
我是 Javascript 的新手,我正在尝试绕过 while 循环。我了解它们的目的,我想我了解它们的工作原理,但我在使用它们时遇到了麻烦。 我希望 while 值自身重复,直到两个随机数相互匹配。
我刚刚偶然发现Fabric并且文档并没有真正说明它是如何工作的。 我有根据的猜测是您需要在客户端和服务器端都安装它。 Python 代码存储在客户端,并在命令运行时通过 Fabric 的有线协议(pr
我想了解 ConditionalWeakTable .和有什么区别 class ClassA { static readonly ConditionalWeakTable OtherClass
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 5年前关闭。 Improve this questi
我还没有成功找到任何可以引导我理解 UIPickerView 和 UIPickerView 模型的好例子。有什么建议吗? 最佳答案 为什么不使用默认的 Apple 文档示例?这是来自苹果文档的名为 U
我在看foldM为了获得关于如何使用它的直觉。 foldM :: Monad m => (a -> b -> m a) -> a -> [b] -> m a 在这个简单的例子中,我只返回 [Just
答案What are _mm_prefetch() locality hints?详细说明提示的含义。 我的问题是:我想要哪一个? 我正在处理一个被重复调用数十亿次的函数,其中包含一些 int 参数。
我一直在读这个article了解 gcroot 模板。我明白 gcroot provides handles into the garbage collected heap 然后 the handle
提供了一个用例: 流处理架构;事件进入 Kafka,然后由带有 MongoDB 接收器的作业进行处理。 数据库名称:myWebsite集合:用户 并且作业接收 users 集合中的 user 记录。
你好 我想更详细地了解 NFS 文件系统。我偶然发现了《NFS 图解》这本书,不幸的是它只能作为谷歌图书提供,所以有些页面丢失了。有人可能有另一个很好的资源,这将是在较低级别上了解 NFS 的良好开始
我无法理解这个问题,哪个更随机? rand() 或: rand() * rand() 我发现这是一个真正的脑筋急转弯,你能帮我吗? 编辑: 凭直觉,我知道数学答案是它们同样随机,但我忍不住认为,如果您
我是一名优秀的程序员,十分优秀!