我正在测试使用stripslashes()有多安全
我尝试了以下几点:
$str = chr(0xbf) . chr(0x27);
var_dump(stripslashes($str)); // string(2) " �' "然后我把它改成这个:
$str = $_POST['input']; // %bf%27;
var_dump(stripslashes($str)); // string(3) " �'' "然后我使用curl发送input数据:
curl_setopt($ch, CURLOPT_POSTFIELDS, 'input=' . chr(0xbf) . chr(0x27));但结果是:string(3) " �'' "
是否有可能像在第一个例子中那样从另一个服务器接收数据时获得结果?使用stripslashes() 安全吗?
发布于 2013-04-07 17:01:50
你在这里问两个问题:
论条纹斜杠的安全性
stripslashes()实际上并不是一种处理输入的安全方法(我猜想,这会进入数据库)。涉及的变量太多,比如
浅谈邮政数据的接收
尝试以下文件。它应该作为您正在调查的内容的基本测试用例。到目前为止,我还不能重现你描述的问题。
test.php
<html>
<head></head>
<body>
<form method="POST" action="test.php">
<input type="text" name="input"></input>
<input type="submit" value="Submit"></input>
</form>
<?php
$string = chr(0xbf) . chr(0x27); // yields string '¿'' (length=2)
$input = $_POST['input'];
foreach (array($string, $input) as $s) {
var_dump(stripslashes($s));
var_dump($s);
}
?>
</html>您得到的结果强烈地指向了一个编码问题。
https://stackoverflow.com/questions/15861296
复制相似问题