Wordpress和Typecho是如何防止SQL注入,XSS等攻击的?

yyblog 发布于 2015/06/13 22:42
阅读 635
收藏 1
Wordpress和Typecho是如何防止SQL注入,XSS等攻击的?主要是想借鉴学习一下,求解答
加载中
0
eechen
eechen
HTMLPurifier是一个专门用于清除XSS的PHP库,使用起来非常简单:
<?php
require dirname(__FILE__).'/htmlpurifier/library/HTMLPurifier.auto.php';
$purifier = new HTMLPurifier();
$string = $purifier->purify($string);

可以用绑定参数防止SQL注入:
//PDO
$stmt = $dbh->prepare('SELECT id, post_title, post_content FROM posts WHERE id=:id');
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
//MySQLi
$stmt = $mysqli->prepare('SELECT id, post_title, post_content FROM posts WHERE id=?');
$stmt->bind_param('i', $id);
$stmt->execute();
$result = $stmt->get_result();
$results = $result->fetch_all(MYSQLI_ASSOC);
y
yyblog
那如果没有安装PDO和MySQLi拓展,就无法使用PDO和MySQLi了?
金拱门
金拱门
回复 @eechen : 我觉得最后那句有异议。很多语言早就有参数绑定之类的。PHP到现在还一推人在用拼接SQL写法。当然,未来肯定是光明的。
南湖船老大
南湖船老大
描述有点不太准确。绑定参数和你说的那个类型转换并不完全是一回事。假如要查询的就是个字符串,那么你再怎么转换也避免不了SQL注入,即使你addslash也可以绕过。参数绑定就可以,它不仅仅做了类型转换,还做了语法解析,确保参数解析后仍然只是参数,而不是一个SQL片段
eechen
eechen
其实绑定参数的原理就相当于PHP用addslashes()转义字符串,用intval()或(int)获取变量的整数值. 这些其实程序都可以自己做,不过使用参数化查询,也就省事了.这就是PHP,带你装逼带你飞.
返回顶部
顶部