我正在开发一个项目,允许公众(所以每个人)通过TinyMCE为他们自己的项目页面插入HTML.由于每个人都被允许使用此功能,我需要一种100%安全的方式将TinyMCE输出插入我的数据库,并将其显示在另一个页面上,就像用户插入一...
我正在开发一个项目,允许公众(所以每个人)通过TinyMCE为他们自己的项目页面插入HTML.由于每个人都被允许使用此功能,我需要一种100%安全的方式将TinyMCE输出插入我的数据库,并将其显示在另一个页面上,就像用户插入一样.
XSS,SQL注入和所有其他废话不是我想要的新网站!我可以做htmlentities – > htmlspecialchars以及稍后使用htmlentities_decode,但这是100%安全,这是最好的方法吗?
解决方法:
在大多数情况下,使用预准备语句可以轻松避免SQL注入.
如果您计划允许用户发布HTML标记,则XSS会更加困难.您需要删除所有< script>标签,所有来自标签的*属性,所有javascript:url,甚至那时候可能还没有完全保证使输入HTML安全.像HTMLPurifier这样的库可以提供帮助,但只要你允许HTML,你就有可能让恶意通过.
您可以使用实现诸如markdown或wikitext之类的库.这严重限制了用户可以输入的内容,同时仍然允许他们在一定程度上标记内容.它不是全面的(人们仍然可以发布到恶意网站的链接,并希望用户点击它们,有些人会真实地做到这一点),你将无法使用像TinyMCE这样的丰富编辑器而没有某种形式插件,但清理markdown比清理HTML要简单得多.
本文标题为:php – 在MySQL中存储html的100%安全方式
- JavaScript实现酷炫的鼠标拖尾特效 2023-08-12
- HTML怎么设置下划线?html文字加下划线方法 2022-09-21
- Ajax+smarty技术实现无刷新分页 2022-12-15
- js如何去除数组中的empty undefined空项 2022-10-22
- layui数据表格导入数据 2022-12-13
- HTML常用标签超详细整理 2022-11-20
- IE下Ajax提交乱码的快速解决方法 2023-01-21
- linux – wkhtmltopdf – QXcbConnection:无法连接到显示器 2023-10-25
- 如何使用CSS3画出一个叮当猫 2022-11-13
- TypeScript接口介绍 2023-08-08