我有一个简单的网站,我使用PDO建立与Mysql服务器的连接.
$dbh = new PDO('mysql:host=localhost;dbname=DB;port=3306', 'USER',
'SECRET',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
Run Code Online (Sandbox Code Playgroud)
我的网站上有一些流量,达到服务器连接限制,网站抛出此错误,其中包含我的PLAIN密码!
致命错误:/home/domain/html/index.php:xxx中带有消息"SQLSTATE [08004] [1040]连接太多"的未捕获异常"PDOException"堆栈跟踪:#0 /home/domain/html/index.php (64):PDO - > __ construct('mysql:host = loca ...','USER','SECRET',Array)在第64行的/home/domain/html/index.php中抛出#1 {main}
具有讽刺意味的是,出于安全考虑我转向PDO,所以这让我感到震惊,因为这个确切的错误是你可以在大多数使用简单的http泛滥的网站上轻易引起的.
我现在已将我的连接包装在try/catch块中,但我认为这仍然是灾难性的!
我是PDO的新手,所以我的问题是:我需要做些什么来考虑安全?如何以安全的方式建立连接?是否还有其他已知的安全漏洞,我必须注意这个漏洞?