Nhibernate/C# - 将 Nhibernate 设置为解码 SQL 之前的所有文本输入?
Nhibernate/C# - Set Nhibernate to decode all text inputs before SQL?
我工作的网站主要是安全数据输入,我使用以下工作流程:
- 用户输入文本
- JS encodeURI(文本)
- Ajax 到 C#
- C# 调用 nHibernate 方法
- nHiberate 执行 SQL
- returns 到 C#
- returns 到 JS
- JS decodeURI
我想知道是否可以将 nHibernate 设置为在将所有文本字段发送到 SQL 之前对其进行解码,而不必手动解码每个文本字段。我想这样做是因为我在 SQL 中生成的报告包含编码并且不可读。
同样,我正在寻找 nHiberate 的某种全局设置,以便在将它们发送到 SQL 之前解码所有文本字段。
或者在生成报告之前进行解码的方法?
有没有人有什么想法?
当您 set/get 属性 时,您可以创建一个 encode/decode 的自定义类型。您需要从 IUserType 派生并使用 NHibernate 注册您的类型。这是一个加密字符串示例
https://gist.github.com/jasondentler/1170933#file-encryptedstring-cs
或者,您可以编写 EventListeners 并在那里执行 encode/decode。
这是关于 EventListeners 的文档
http://nhibernate.info/doc/nhibernate-reference/events.html
如果我是你,我会走自定义类型路线。它需要维护的代码更少,而且更符合您的需求。
我工作的网站主要是安全数据输入,我使用以下工作流程:
- 用户输入文本
- JS encodeURI(文本)
- Ajax 到 C#
- C# 调用 nHibernate 方法
- nHiberate 执行 SQL
- returns 到 C#
- returns 到 JS
- JS decodeURI
我想知道是否可以将 nHibernate 设置为在将所有文本字段发送到 SQL 之前对其进行解码,而不必手动解码每个文本字段。我想这样做是因为我在 SQL 中生成的报告包含编码并且不可读。
同样,我正在寻找 nHiberate 的某种全局设置,以便在将它们发送到 SQL 之前解码所有文本字段。
或者在生成报告之前进行解码的方法?
有没有人有什么想法?
当您 set/get 属性 时,您可以创建一个 encode/decode 的自定义类型。您需要从 IUserType 派生并使用 NHibernate 注册您的类型。这是一个加密字符串示例
https://gist.github.com/jasondentler/1170933#file-encryptedstring-cs
或者,您可以编写 EventListeners 并在那里执行 encode/decode。
这是关于 EventListeners 的文档
http://nhibernate.info/doc/nhibernate-reference/events.html
如果我是你,我会走自定义类型路线。它需要维护的代码更少,而且更符合您的需求。