在 MySQL 中存储 html 的 100% 安全方法 [关闭]

2024-03-16

我正在开发一个项目,允许公众(每个人)通过 TinyMCE 为他们自己的项目页面插入 HTML。由于每个人都可以使用此功能,因此我需要一种 100% 安全的方式将 TinyMCE 输出插入到我的数据库中,并将其显示在另一个页面上,就像用户插入的那样。

XSS、SQL 注入和所有其他垃圾都不是我在新网站上想要的!我可以执行 htmlentities -> htmlspecialchars ,然后使用 htmlentities_decode ,但这是否 100% 安全,并且这是最好的方法?


在大多数情况下,通过使用准备好的语句可以轻松避免 SQL 注入。

如果您计划允许用户发布 HTML 标记,那么 XSS 会更加困难。你需要删除所有<script>标签,全部on*标签的属性,全部javascript:url,即使如此,也可能无法完全保证输入 HTML 的安全。有一些图书馆,例如HTML净化器 http://htmlpurifier.org/这会有所帮助,但只要您允许 HTML,您就面临着让恶意内容通过的风险。

您可以使用实现 markdown 或 wikitext 等功能的库。这严重限制了用户可以输入的内容,同时仍然允许他们在一定程度上标记内容。它并不是完全可靠的(人们仍然可以发布到恶意网站的链接并希望用户点击它们,有些人会天真地实际这样做),并且如果没有某种类型,您将无法使用像 TinyMCE 这样的丰富编辑器插件,但清理 Markdown 比清理 HTML 要简单得多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 MySQL 中存储 html 的 100% 安全方法 [关闭] 的相关文章

  • 将 Javascript 正则表达式转换为 PHP

    我知道这个问题已经被问了大约十几次 但是从技术上讲 这个问题并不是一个骗局 如果您愿意 请检查其他问题 基本上 我有一个 Javascript 正则表达式来检查用于前端验证的电子邮件地址 并且我使用 CodeIgniter 在后端进行双重检
  • Ubuntu 12.04 上的 PHP 从 5.3 升级到 php 5.6

    我正在按照本教程将 php 从版本 5 3 升级到 5 6 http phpave com upgrade php 53 to php 56 on ubuntu 1204 lts http phpave com upgrade php 53
  • HTML5 游戏到本机应用程序 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在用 HTML5 制作游戏 我最熟悉 HTML5 并且比 C 等更高级的语言更喜欢它 HTML5
  • 在响应式设计中将顶部元素移动到底部的最佳方法是什么

    我有以下 HTML 格式 将给定元素放置在桌面上的顶部和移动设备上的底部 宽度 p I am on the top of desktop page and bottom of mobile page p 以响应式方式重新排序未知高度的元素最
  • 如何将从 MySQL 获取的数据以 JSON 形式返回到 php 文件中?

    我必须将从 MySQL 表中获取的数据作为 JSON 返回到 php 文件中 这是我连接到 mysql 并从中获取数据的代码 现在我怎么能将它作为 JSON 返回呢
  • Laravel 5 未找到“App\Carbon\Carbon”类

    我最近run sudo composer update 现在在我的一个页面上 我不断得到 我确实用过 now Carbon Carbon now America New York in line 792 on my Helper php M
  • 如何隐藏 URL 中的 ID

    我以前在 Stack Overflow 上见过这类问题 但没有一个真正有帮助 我也用谷歌搜索过 但没有骰子 我想知道如果用户单击选项卡本身是否可以隐藏 URL 中的 ID 这是网页 www planet nu dev new experia
  • 如何通过htaccess在codeigniter中隐藏index.php和控制器名称

    我想从我的 codeignier url 网站隐藏 index php 和控制器名称 我也想替换这个术语 seo test product ad test product 我在下面提到了我的 htaccess 文件 请指导我如何解决这个问题
  • 为通用字符选择表排序规则

    我正在开发一个需要存储通用字符的后端 我选择了utf8mb4用于此目的的表编码 我还必须选择表格排序规则 最直接的选择是选择utf8mb4 general ci表整理 除了一般的排序规则之外 还有大约20种其他排序规则可供选择 更具体的排序
  • 使用单个查询和每用户密码盐进行用户登录

    我决定使用存储在数据库中的每用户盐来实现用户登录 盐作为密码的前缀 该密码使用 SHA 进行哈希处理并存储在数据库中 过去 当我不使用盐时 我会使用典型的方法 使用用户输入的用户名和密码来计算查询返回的行数 然而 对于每个用户的盐 您需要先
  • 使用 dockerfile 在 docker 中安装 mongodb 驱动

    我有一个 mongodb docker 容器 我需要另一个安装了 php 和 apache 的 docker 容器 我想从这个容器运行一个 php 脚本并将一些数据发送到 mongodb 容器以将数据保存在 mongodb 数据库中 所以我
  • PHP 中可以动态添加数据成员吗?

    我想知道是否可以在 PHP 运行时添加新的类数据成员 Yes prop newname obj gt prop 42 会做同样的事情 obj gt newname 42 如果 obj 尚不存在 则任一者都会将 newname 添加为属性
  • 如何捕获生成器抛出的异常并恢复迭代?

    我有一个生成器 它将值的集合传递给方法并生成结果 调用的方法可能会返回异常 发生这种情况时 我希望异常转到调用生成器来处理异常的代码 然后继续循环生成器 为了说明这一点 下面是一个生成器的示例 它将产生1 抛出一个 Exception 然后
  • method_存在于父类php中

    我正在尝试使用 php 函数 method exists 但我需要检查该方法是否存在于对象的父类中 so class Parent public function myFunction class Child extends Parent
  • 更新或插入 MySQL Python

    如果记录已存在 我需要更新一行 如果不存在 我需要创建一个新记录 我理解 ON DUPLICATE KEY 将使用 MYSQLdb 完成此操作 但是我无法使其正常工作 我的代码如下 cursor database cursor cursor
  • 严格标准:资源 ID#73 用作偏移量,转换为整数

    我使用这个 PHP 函数获取 MySql 结果 function fetcharray query id if query id query id this gt query res if query id this gt q array
  • 为什么行框之间有空格,而不是由于半行距?

    在下面的代码示例中 您将看到垂直流动的之间有空白spans是 每个之间有空白line box 我想首先声明这与之间的差距无关inline block框 甚至是结果半领先 https www w3 org TR CSS21 visudet h
  • 有没有办法将样式强制应用到已经具有 style="" 属性的 div 元素

    我正在尝试对我无法控制的 HTML 输出进行皮肤处理 其中一个元素是div with a style overflow auto 属性 CSS 有没有办法强制这样做div to use overflow hidden 你可以加 import
  • PHP UTF-8 配置

    我正在使用 PHP 5 3 5 配置 Apache 2 2 17 服务器 我的目标是创建一个默认为内容类型的干净配置UTF 8 php ini default charset UTF 8 default mimetype applicati
  • MySQL-分割字符串

    我的问题与这篇文章类似 MySQL 中的 反向 GROUP CONCAT https stackoverflow com questions 17308669 reverse group concat in mysql 然而 而不是反转gr

随机推荐

  • 具有透明背景的CWnd

    我想创建一个基于 CWnd 的类 它将引入具有透明背景的控件 只要内容是静态的 创建一个控件并用透明背景绘制其内容对我来说没什么大不了的 问题是当我想创建一个内容不断变化的控件时 这是因为我不知道如何用父背景删除控件的内容 一般情况下可能不
  • 如何开始构建 django 网站以及 django 如何构建页面?

    我为我的个人网站启动了一个 django 项目来学习 django 到目前为止 我已经设置了我需要的一切开发环境并遵循this https docs djangoproject com en dev intro tutorial01 创建一
  • git push --recurse-submodules=on-demand 并不是真正的递归

    我有以下项目结构 root project A C B A 和 B 是根项目的子模块 C 又是一个子模块 假设我对项目 A B 和 C 进行了更改 并且 将这些变化提交给各自的指数 之后我更新 根项目中对 A 和 B 的引用并提交该更改 以
  • 如果类包含基类类型的成员作为第一个元素,然后是其他成员,编译器可以优化空基吗?

    考虑 struct empty struct child empty empty a sizeof int sizeof empty int b Assume sizeof int gt sizeof empty 标准是否强制要求sizeo
  • 使用 g++ 编译 C++11

    我正在尝试将我的 C 编译器更新到 C 11 我搜索了一下 得出的结论是我必须使用该标志 std c 0x or std gnu 0x 但我对标志了解不多 谁能帮我 我使用的是 Ubuntu 12 04 这是当我尝试使用 C 11 中包含的
  • Composer更新问题

    我正在使用 laravel composer 我正在加载 way generators 包 当我运行 Composer update 时出现以下错误 加载包含包信息的 Composer 存储库 依赖项 包括 require dev 致命错误
  • Java:为什么我不能将 int 转换为 Long

    Java 中的所有数字都应该是 int 类型 以下行在 Java gt 1 5 中是合法的 Short s 1 Will compile to Short s Short valueOf short 1 thus you can t exc
  • 使用httr R包发送POST请求

    当通过 POST 请求发送服务器数据时 我不知道如何模仿浏览器的行为 以下是相关 URL 并附有说明 1 http kenpom com 2 http kenpom com register php frompage 1
  • Xcode 4.6 上的 Mach-O 链接器错误

    我在 Xcode 4 6 上有一个 iOS 应用程序 当我最近尝试在 iPhone 6 1 模拟器中构建和运行时 我收到了 Mach O 链接器错误 它继续说道 ld 架构 i386 的 17 个重复符号 clang 错误 链接器命令失败
  • 如何使用 Roslyn 代码修复提供程序 API 从文档中删除 SyntaxNode 列表?

    我正在使用自定义生成的变量声明SyntaxFactory VariableDeclaration和一个列表SyntaxNode是根据一定条件收集的 我做了以下事情 修改节点 var newRoot root ReplaceNode expr
  • PHP显示BLOB数据?

    如何使用 PHP 显示 BLOB 数据 我已将 BLOB 输入到数据库中 但如何检索它 任何例子都会很棒 我考虑投票结束这个重复项 但标题相当不错 并且浏览其他问题 我没有找到一般问题的完整答案 这类问题暴露了对 HTTP 基础知识缺乏了解
  • 如何让Bootstrap 3工具提示跟随鼠标?

    我的网站上有一个链接列表 这些链接在 Bootstrap 工具提示中显示图像 a title Item 1 a a title Item 2 a a title Item 3 a
  • 在静态库中包含第三方库(例如:AFNetworking)

    是否可以在静态库中包含第三方库 示例 AFNetworking 可以包含在静态库中吗 您的问题的直接答案是肯定的 您绝对可以包含任何第三方库 如果它们公开公共 API 一组供您参考的标头 对于 AFNetworking 他们通过提供 Coc
  • 即使对于已登录的用户,也会在页面加载时清除 Woocommerce 购物车

    如果此页面不是购物车或结账页面 我想在页面加载时清除购物车页面即使对于登录的用户和管理员 任何页面也会被清除 这段代码可以工作 但现在不行了 Clears WC Cart on Page Load Only when not on cart
  • PDO从数据库获取数据

    我最近开始使用 PDO 之前我只使用 MySQL 现在我正在尝试从数据库中获取所有数据 getUsers DBH gt prepare SELECT FROM users ORDER BY id ASC getUsers gt fetchA
  • C# 如何最大限度地提高特定代码段没有上下文切换的机会?

    我的应用程序中有一段对时间要求严格的代码 我将运行它的线程设置为最高优先级 这是我能做的最多的事情 是否有关于如何使该线程中运行的部分代码被中断尽可能少的次数 更少发生上下文切换 的建议 代码并不复杂 我用内联代码替换了所有方法调用 并且不
  • 在 Azure API 上托管 Flask(python) API

    团队 我一直在尝试在 Azure API 应用程序上托管 Flask API 但它不起作用 Azure API 应用程序正在运行 托管页面打开 Python 版本为 3 6 6 我无法托管简单的 hello world 项目 我收到的不同错
  • 在 C# SQLCLR 中更改静态只读变量是否安全?

    我在 C 6 0 NET 3 5 CLR 程序集中编写了一些代码 安全级别 external access 减少代码 public static readonly DataTable warnings table init warnings
  • 循环 Eclipse 代码模板中的字段

    您可以在代码模板中执行循环吗 例如我想打印类中的所有字段 有这样的模板吗 假设你正在谈论Java gt Editor gt Templates参考 可能已经过时 是here http help eclipse org help32 inde
  • 在 MySQL 中存储 html 的 100% 安全方法 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi