gpt4 book ai didi

php - URL 和 mod_rewrite : use many special chars and keep data safe from attacks

转载 作者:行者123 更新时间:2023-11-29 02:36:26 24 4
gpt4 key购买 nike

我在一个网站上工作,其中的内容页面是用 mod_rewrite 处理的我正在尝试使用 mod_rewrite 管理 URL免受 SQL injections 的保护有一些字符限制,因为用户可以创建这样的页面内容:

http://site.com/content-type/Page-created-by-user

当他们插入类似这样的内容时,我的疑虑就来了:

http://site.com/architect/Giovanni+Dall'Agata

我需要插入 ' char 因为我可以有这样的名字,例如著名建筑师,但我不知道我是否可以保证数据安全以及如何防止 SQL injections用这个字符。

我应该做些什么来防止攻击吗?

我正在使用 PDO classPHP像这样:

$architect = strip_tags (trim ($_REQUEST["architect"]));

// pdo class etc..
$pdo_stmt->bindParam (":arch", $architect, PDO::PARAM_STR);
// and the other code here...

用户不能使用这些字符创建页面:< > / \ * ? =我应该禁止 '"也?或者我应该只允许 ' 中的一个吗?和 "字符或者我可以一起使用它们并保证服务器安全吗?

最佳答案

$stmt->bindParam (和 bindValue,一般来说,准备好的语句)对 SQL 注入(inject)是安全的。所有严肃的 SB 框架都支持一种向查询添加参数的方式,并且以这种方式添加的值会被清理。您应该始终这样做,并且永远不要将来自用户的 变量 数据(参见评论)手动插入到 SQL 查询字符串中。

这仍然留下了 XSS 注入(inject)的问题,它更容易被遗漏(尽管也不太危险);为避免它们,请确保始终使用 htmlspecialchars($var,ENT_QUOTES)(或 urlencode,具体取决于上下文)。

关于php - URL 和 mod_rewrite : use many special chars and keep data safe from attacks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4422039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com