我正在为我们的分布式应用程序开发一个富文本编辑器,以允许用户在该编辑器中输入他/她的注释。在这里,我们允许用户从键盘输入注释并复制粘贴来自外部来源的注释,如互联网,MS-Word等。因此,这里我们需要保存用户输入的内容而不删除任何单个字符。
最初我想,我们需要加密评论并将其保存到数据库端,而用户想要查看他的评论,然后我们从数据库中获取并解密并显示给用户。但问题是,数据库中的加密数据/注释被不同的应用程序使用,因此我们需要在所有其他应用程序中实现相同的加密和解密机制....这是一个非常糟糕的主意。
所以,伙计们,如果有人对此有更好的想法。请发布答案。
感谢。
答案 0 :(得分:1)
"encrypt"我假设您的意思是"escape" or "encode"?
否则,为什么需要加密评论?请记住,您无法对加密数据执行数据库搜索。此外,如果攻击者要访问您的数据库并同时对您的应用程序进行反向工程,他/她仍然可以解密数据。从你给出的关于你的应用程序的细节来看,加密简单的#34;评论"
是没有意义的。通常最好将原始数据存储在数据库中,并在将其显示给用户时将其转义。例如,假设您想要在用户输入数据库的文本中转义HTML。因此,在插入文本之前,您已转义所有HTML标记。但一年后,您希望改进其中一个应用程序,并允许<ol>
<li ng-repeat="item in list | filter: { value : 'abc' }">test</li>
</ol>
和<b>
用于此特定应用程序。在这种情况下,更可取的是访问数据库中的原始原始数据,并在需要时(即在将其显示给用户之前)进行任何转义。
您可以阅读有关此主题的更多信息here。