Chr*_*ris 8 php ldap code-injection
我们正在构建一个通过php使用LDAP的应用程序,我开始想到有什么办法可以注入到LDAP中,更好的是如何防止LDAP注入?
构建LDAP过滤器时,必须确保根据RFC2254处理过滤器值:
任何具有ACII代码<32的控制字符以及在LDAP过滤器中具有特殊含义的字符"*","(",")"和"\"(反斜杠)都将转换为反斜杠的表示形式,然后是两个十六进制数字,表示字符的十六进制值.
Zend_Ldap 例如,使用以下例程
//[...]
$val = str_replace(array('\\', '*', '(', ')'), array('\5c', '\2a', '\28', '\29'), $val);
for ($i = 0; $i<strlen($val); $i++) {
$char = substr($val, $i, 1);
if (ord($char)<32) {
$hex = dechex(ord($char));
if (strlen($hex) == 1) $hex = '0' . $hex;
$val = str_replace($char, '\\' . $hex, $val);
}
}
//[...]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3134 次 |
| 最近记录: |