将使用javascript文本编辑器编写的html文本输入存储到我的数据库中是否安全和常规?
假设我正在使用ckeditor让用户在我的应用程序中输入他们的文章。当您从客户端查看文章时,文章看起来很好,但是当您从数据库中查询它时,它太乱了。
例如,文本正文将存储如下:
<p class="MsoListParagraph" style="margin-left:56.0pt;mso-para-margin-left:0gd;
text-indent:-18.0pt;mso-list:l3 level1 lfo1"><!--[if !supportLists]--><span lang="EN-US" style="font-size: 12pt; font-family: 'Times New Roman';">-<span style="font-size: 12pt; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-US" style="font-size: 12pt; font-family: 'Times New Roman';">Natural selection is a process that individuals
have some heritable characteristics to survive and reproduce at a higher rate
compare to other individuals. Natural selection increases the match between
organisms and environments. Furthermore, as an environment changes or
individuals move to a new place, natural selection may effect of adaptation to
these new conditions by giving rise to new species in the process. Natural
selection can only increase or decrease heritable traits. <u><o:p></o:p></u></span></p>
然后身体呈现为@article.body.html_safe
有没有更好的方法来解决这个问题?
答案 0 :(得分:0)
如果数据库不需要知道文本的内部,那么可以像这样存储它,有效地将其视为不透明的blob。
当有人查看该项目时,更大的问题是Web浏览器的安全性。您需要小心谨慎以验证输入,否则有人可能会在文档中存储一些javascript,然后该javascript将在浏览该文章的任何人的浏览器上运行。
请参阅此处的答案:filtering tags