指定要解释为纯文本的页面的某些部分

sas*_*har 2 html php mysql

我是网络开发的初学者,我正在开发一个网站,允许用户发布各种讨论,其他人评论和回复.我面临的问题是,用户几乎可以发布任何内容,包括代码片段以及可能包含单引号,双引号甚至某些html内容的任何其他内容.

当这些帖子被发布时,它正在干预MySQL插入查询,因为引号正在结束字符串,因此查询失败.即使我使用php显示字符串,浏览器也会将字符串解释为html,我希望它被解释为文本.我是否必须手动解析输入字符串并转义所有特殊字符?还是有另一种方式?

Joh*_*hnP 5

你需要阅读一些内容

SQL注入 - 什么是SQL注入以及如何防止它

PHP PDO - 使用PHP PDO可降低注入风险

ヶ辆

基本前提是,清理所有正在输入的输入并对所有输出内容进行编码.不要相信任何用户输入.

如果可能,白名单而不是黑名单.

编辑:

我想在那里显示HTML或其他代码内容,用户需要使用标记标记这些区域<pre>.或者您可以使用降价变体等格式进行格式化.