我一直在为视频网站开发一个项目。它从数据库中提取信息并在需要的地方插入细节。PDO实现,MySQL,SQL注入
到目前为止,一切都很完美,但我刚刚完成了SQL注入测试,并且所有内容都完全打开。我一直在寻找答案来关闭它,并使事情变得更加安全。
我试图实现PDO的声明,但我不能得到我的头。我只在本月为php/sql工作,所以我非常新。
任何帮助或其他的解决方案将是惊人的,下面的代码是我的,我相信主要页面的连接点,也是最脆弱的部分
<?php
$username="********";
$password="*******";
$database="*******";
$id = $_GET['id'];
$badchars = array("\"", "\\", "/", "*", "'", "=", "-", "#", ";", "<", ">", "+", "%");
$myid = str_replace($badchars, "", $id);
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die("Unable to select database");
$result = mysql_query("SELECT * FROM Videos WHERE id='$id'");
while($row = mysql_fetch_array($result)) {
$title=mysql_result($result,0,"title");
$url=mysql_result($result,0,"url");
$id=mysql_result($result,0,"id");
$description=mysql_result($result,0,"description");
$source=mysql_result($result,0,"source");
$type=mysql_result($result,0,'type');
}
?>
***不要试图让你自己的SQL更清洁,使用提供给你的。 'mysql_real_escape_string'。 – 2013-03-11 19:44:24
您尝试过的PDO代码是什么? – 2013-03-11 19:45:52
'mysql_fetch_array'给你所有的字段,你不需要使用'mysql_result' *也*。 – 2013-03-11 19:49:51