Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在MySQL中安全地存储HTML数据?_Javascript_Php_Html_Mysql - Fatal编程技术网

Javascript 如何在MySQL中安全地存储HTML数据?

Javascript 如何在MySQL中安全地存储HTML数据?,javascript,php,html,mysql,Javascript,Php,Html,Mysql,所以,事情是这样的,我正在为我的大学考试(comp.sciences)开发自己的基于PHP的论坛软件。我发现一件棘手的事情是允许html内容。考试要求之一是SQL安全性 在我的论坛中,我想允许某人从互联网上复制和粘贴一些东西,比如说维基百科的文章,所有的超链接和字体样式都可以通过他们粘贴到论坛文本区域的超链接和字体样式进行转换 我能够通过使用nicEditor实现这一点,nicEditor是js wysiwyg编辑器。现在问题在于我验证用户输入的方式。为了保证输入的安全性,需要以这样的格式调用它

所以,事情是这样的,我正在为我的大学考试(comp.sciences)开发自己的基于PHP的论坛软件。我发现一件棘手的事情是允许html内容。考试要求之一是SQL安全性

在我的论坛中,我想允许某人从互联网上复制和粘贴一些东西,比如说维基百科的文章,所有的超链接和字体样式都可以通过他们粘贴到论坛文本区域的超链接和字体样式进行转换

我能够通过使用nicEditor实现这一点,nicEditor是js wysiwyg编辑器。现在问题在于我验证用户输入的方式。为了保证输入的安全性,需要以这样的格式调用它

parsebbCode(htmlentities(stripslashes($posts_content)))

这几乎使一切都变得无用,将html转换为纯文本。问题是,我如何将默认状态下的html代码存储在MySQL中,并将其转换为富格式代码(它将发送到客户端),而不创建SQL漏洞?或者我应该写一些BBCODE来解析基本元素吗?

我最初是作为注释添加的,但这确实是一个答案:

如果使用参数更新数据库,SQL注入攻击将被挫败。只有当您使用临时SQL文本查询时,您才会像这样容易受到攻击

以下是一个链接:


如果使用参数更新数据库,SQL注入攻击将被挫败。只有当你使用特殊的SQL文本查询时,你才会像这样容易受到攻击。可能对你没用,但你有没有考虑过在SQL中使用BLOB?它允许您存储二进制数据。您可以将粘贴的材料转换为blob行,当客户端请求特定的“post”时,您可以在服务器上呈现html,并发送“呈现”对象,将blob撕下并插入到您想要的富文本区域中。我不明白如何将SQL问题注入其中,因为它正在保存文本,而不必解析文本并对其执行操作,因为您正在将其转换为二进制。同样,这可能是错误的,但只是一个想法。啊,PDO。这个项目/考试是用老式的mysql运行的,因为它基于我在2010年左右开始的旧代码。只是需要分数,所以我忽略了PDO。然而,鉴于PDO为您进行了大部分SQL验证,我将采纳您的建议并将其重新写入PDO。这是您唯一的实际选择。