我有一种感觉这是一个非常基本的问题,每个人都知道,但我一段时间都在使用PHP,所以我只想确定。
我正在尝试创建一个允许用户发表评论的网页。由于我需要使用MySQL数据库存储注释,因此我需要将服务器信息和我的登录凭据放在允许我的页面将表单数据发送到PHP代码中的数据库中。我需要加密这些信息吗?如果我这样做我会怎么做?我知道如何加密用户输入的内容,但我不确定如何加密需要保留在代码中的内容。
答案 0 :(得分:0)
一般来说,如果您的Web服务器是安全的,客户端将无法浏览您的php文件和代码。 Php是一种服务器端语言,这意味着客户端(浏览器)看不到它。浏览器会看到客户端文件,例如html文件。这意味着他们没有办法获取其中包含您的登录信息的文件,因此没有必要对其进行加密。
话虽如此,您应该确保使用适当的标准并确保您的Web服务器是安全的,否则可能会带来风险。
答案 1 :(得分:0)
是的,您可以将用户和密码放在PHP代码中。
Web服务器很可能向浏览站点的用户显示PHP代码。 Apache配置应该自动运行 PHP代码而不是显示它,但我看到一些站点破坏了他们的Apache配置并意外泄露了代码。
例如,Apache配置文件需要像AddHandler php5-script .php
这样的行。如果配置文件被编辑,并且有人犯了错误,那么这个php脚本处理程序可以被禁用,而且,PHP代码被视为文本文件,并且对任何人都可见。
因此,更好的做法是将您的MySQL凭据放在html文档根目录之外的文件中。然后,任何需要它的PHP脚本都可以使用include()
来读取包含凭据的文件。 PHP脚本可以读取文档根目录之外的文件,但任何HTTP请求都不能。
另一个解决方案是使用php.ini文件。有指令设置默认的MySQL用户&密码。但您只能以这种方式配置一组凭据。
[mysqli]
mysqli.default_host = localhost
mysqli.default_user = scott
mysqli.default_pw = tiger
MySQL 5.6引入了密码的加密存储,以及编辑存储文件的工具。但到目前为止,这实际上只对MySQL客户端工具有用,而不是PHP应用程序。也许有一天这个功能将与PHP本机驱动程序集成。见http://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html
答案 2 :(得分:-3)
PHP没有在前端显示。它不是HTML,也不会显示在浏览器中。所以没有。