时间:2021-07-01 10:21:17 帮助过:12人阅读
- <br>foreach($_POST as $k => $v) { <br>$value = urldecode($v); <br>$this->setParameter($k, $value); <br>} <br> <br>单引号被 urlencode 两次以后是 %2527,然后 POST,PHP 内部在生成全局变量 $_POST 的时候会先 urldecode,得到 %27,然后 PHP 会检查 Magic Quotes 的设置,但是无论是否开启 Magic Quotes,%27 都不会被 addslashes,因为这时根本没有单引号。但是这时如果你在 PHP 代码中画蛇添足的加上 urldecode,%27就变成单引号了,然后……你懂的。 <br><br>在我初学 PHP 的时候,看的是学校图书馆的一本烂书,里面根本就没写 PHP 在处理表单的时候会自动 urldecode,所以自己用 urldecode 函数来解码(依稀记得书上好像也是这么写的,真是误人子弟啊)。 <br><br>总结一下,就是:1、选择一本好书非常重要;2、慎用 urldecode 函数。3、注意 PHP 手册中的警告。 <br>原文来自 http://demon.tw/programming/php-urldecode-sql-injection.html
- <p></p>
- <p align="left"><span id="url" itemprop="url">http://www.bkjia.com/PHPjc/324509.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">true</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/324509.html</span><span id="genre" itemprop="genre">TechArticle</span><span id="description" itemprop="description">Ihipop 学校的 Discuz X1.5 论坛被黑,在那里吵了一个下午。Google 一下“Discuz! X1-1.5 notify_credit.php Blind SQL injection exploit”,你就知道。 Discuz 是国...</span></p>