gpt4 book ai didi

python - 如何防止 python3 的 ldap3 中的 LDAP 注入(inject)

转载 作者:行者123 更新时间:2023-12-01 02:26:02 25 4
gpt4 key购买 nike

我正在使用 ldap3 库编写一些 python3 代码,并试图防止 LDAP 注入(inject)。 OWASP 注入(inject)预防备忘单建议使用安全/参数化 API(除其他外)。但是,我在 ldap3 文档中找不到用于编写搜索查询的安全 API 或安全方法。文档中的大多数搜索查询都使用硬编码字符串,如下所示:

conn.search('dc=demo1,dc=freeipa,dc=org', '(objectclass=person)')

并且我试图避免以与此类似的方式编写查询的需要:

conn.search(search, '(accAttrib=' + accName + ')')

此外,文档中似乎没有提到“注入(inject)”或“转义”或类似的概念。有谁知道这个库中是否完全缺少此功能,或者是否有类似的 Python 库提供安全/参数化 API?或者以前有人遇到过并解决过这个问题吗?

最后一点:我已经看到其他 StackOverflow 问题指出如何使用白名单验证或转义作为防止 LDAP 注入(inject)的方法,我计划实现它们。但如果可能的话,我更愿意使用所有三种方法。

最佳答案

令我有点惊讶的是文档似乎没有提到这一点。但是,有一个实用函数 escape_filter_chars 我相信这就是您正在寻找的:

from ldap3.utils import conv

attribute = conv.escape_filter_chars("bar)", encoding=None)
query = "(foo={0})".format(attribute)
conn.search(search, query)

关于python - 如何防止 python3 的 ldap3 中的 LDAP 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47397341/

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