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

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

时光清浅 发布于 2021-11-29 字数 75 浏览 691 回复 4

Wordpress和Typecho是如何防止SQL注入,XSS等攻击的?主要是想借鉴学习一下,求解答

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

风柔一江水 2021-12-01 4 楼

描述有点不太准确。绑定参数和你说的那个类型转换并不完全是一回事。假如要查询的就是个字符串,那么你再怎么转换也避免不了SQL注入,即使你addslash也可以绕过。参数绑定就可以,它不仅仅做了类型转换,还做了语法解析,确保参数解析后仍然只是参数,而不是一个SQL片段

心欲静而疯不止 2021-12-01 3 楼

回复
我觉得最后那句有异议。很多语言早就有参数绑定之类的。PHP到现在还一推人在用拼接SQL写法。当然,未来肯定是光明的。

清欢 2021-12-01 2 楼

那如果没有安装PDO和MySQLi拓展,就无法使用PDO和MySQLi了?

奢华的一滴泪 2021-11-30 1 楼

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);