加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP / SQL数据库查询良好实践和安全性

发布时间:2020-12-13 18:28:49 所属栏目:PHP教程 来源:网络整理
导读:所以我是一个有点经验丰富的php开发人员,自2007年以来一直在做“该死的事”.但是,在保护我的应用程序方面,我仍然相对较差.在我不知道的一切方式中,我知道我可以而且应该. 我已经拿起了Securing PHP Web Applications并正在阅读我的方式来测试一路上的东西.我
所以我是一个有点经验丰富的php开发人员,自2007年以来一直在做“该死的事”.但是,在保护我的应用程序方面,我仍然相对较差.在我不知道的一切方式中,我知道我可以而且应该.

我已经拿起了Securing PHP Web Applications并正在阅读我的方式来测试一路上的东西.我对与数据库查询有关的一般SO组有一些问题(主要是在mysql下):

创建将数据放入数据库的应用程序时,mysql_real_escape_string和输入数据的一般检查(is_numeric等)是否足够?那些与sql注入不同的其他类型的攻击呢?

有人可以解释存储过程和准备好的语句,而不是 – 你制作它们并调用它们.我想知道它们是如何工作的,幕后的验证是什么.

我在php4绑定环境中工作,php5暂时不是一个选项.有没有其他人曾经在这个位置,你做了什么来保护你的应用程序,而所有酷孩子都在使用这个甜蜜的新mysqli界面?

人们发现有哪些一般的良好做法是有利的,强调创建一个能够承受升级和可能的迁移的基础设施(比如将php4移到php5).

注意:有一个搜索周围找不到任何类似于这个打到php-mysql安全性.

我的建议:

> ditch mysqli支持PDO(使用mysql驱动程序)
>使用PDO paremeterized准备好的陈述

然后你可以这样做:

$pdo_obj = new PDO( 'mysql:server=localhost; dbname=mydatabase',$dbusername,$dbpassword );

$sql = 'SELECT column FROM table WHERE condition=:condition';
$params = array( ':condition' => 1 );

$statement = $pdo_obj->prepare( $sql,array( PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY ) );
$statement->execute( $params );
$result = $statement->fetchAll( PDO::FETCH_ASSOC );

优点:

>不再需要手动转发,因为PDO为您完成了所有工作!
>突然切换数据库后端相对容易.

缺点:

>我想不出任何.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读