gpt4 book ai didi

nhibernate - 使用普通 NHibernate 的 SQL 注入(inject)

转载 作者:行者123 更新时间:2023-12-04 10:22:03 40 4
gpt4 key购买 nike

普通的 NHibernate 设置,例如,没有流畅的 NHibernate,没有 HQL,除了域对象和 NHibernate 映射文件之外什么都没有。我通过以下方式加载对象:

_lightSabers = session.CreateCriteria(typeof(LightSaber)).List<LightSaber>();

我将原始用户输入直接应用于“LightSaber”类的一个属性:
myLightSaber.NameTag = "Raw malicious text from user";

然后我保存光剑:
session.SaveOrUpdate(myLightSaber);

我所看到的一切都表明是的,在这种情况下,您对 SQL 注入(inject)免疫,因为 NHibernate 参数化和逃避引擎盖下的查询的方式。但是,我也是一个相对的 NHibernate 初学者,所以我想仔细检查一下。

谢谢!

最佳答案

是的,您在使用 NHibernate 时几乎不会受到 SQL 注入(inject)的影响。它在支持这些的所有平台上对所有生成的 SQL 语句使用参数化查询。

但是,您可以通过使用自定义 SQL 进行插入/更新,或通过执行带有 execute_sql 变体的 SQL 来规避这种情况。某种类型的,或者没有参数的 SQL 查询。

关于nhibernate - 使用普通 NHibernate 的 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2516250/

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