在用户提交的数据中不转义 & 符号是否存在安全风险?

2023-11-27

在显示用户生成/提交的信息时,转义其他特殊字符但不更改与号是否存在安全风险?我想让我的用户自由输入 html 实体、十六进制和十进制特殊字符,而不会给我的清理程序增加不必要的复杂性。


这完全取决于数据放入的上下文。

在 HTML 中,表示纯文本的主要原因&通过字符引用是避免歧义 as the &也是此类字符引用的开始。这种歧义的一个流行的例子是一个简单的例子&作为 HTML 属性中 URL 参数的一部分,如下所示:

<a href="/?lang=en&sect=foobar">

这里的&未使用相应的字符引用进行适当编码,因此解析器将其视为字符引用的开头。自从sect is a HTML 中的已知实体,代表节字符 §,这个属性值实际上被解释为/?lang=en§=foobar.

所以留下一个平淡的&因为它不会像 HTML 中的其他特殊字符那样产生实际威胁,因为它们可以更改数据放入的上下文:

  • 标签分隔符< and >可以开始或结束标签声明,
  • 属性值分隔符" and '可以开始或结束属性值声明。

为了安全起见,您应该使用htmlspecialchars双编码参数设置为false避免对已存在的字符引用进行双重编码:

var_dump(htmlspecialchars('<"&amp;\'>', ENT_QUOTES, 'UTF-8', false) === '&lt;&quot;&amp;&#039;&gt;'); // bool(true)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在用户提交的数据中不转义 & 符号是否存在安全风险? 的相关文章

  • 如何验证magento中的单选按钮?

    在我的自定义模块中 我有一个带有单选按钮的表单 当我单击提交按钮时 它不会验证单选按钮 如何使用 Magento 默认验证类进行验证 Thanks 我得到了答案 use validate one required by name在单选按钮的
  • 如何设置视频文件的预览,从输入类型='文件'中选择

    在我的模块之一中 我需要从 input type file 浏览视频 之后我需要在开始上传之前显示选定的视频 我使用基本的 HTML 标签来显示 但它不起作用 这是代码 document on change file multi video
  • 如何保留用户的输入打印?

    我正在尝试添加用户的评论 所以我只是尝试读取输入并将其发送以进行打印 但问题是 一旦我刷新页面或输入另一个输入 打印的输入就会消失 因此 即使刷新页面或重新输入新评论 我也希望始终保持所有用户的显示 代码 div div
  • 为什么不能用反斜杠结束原始字符串? [复制]

    这个问题在这里已经有答案了 我在这里很困惑 尽管原始字符串会转换每个 to 但是当这个 最后出现它会引发错误 gt gt gt r so m e te xt so m e te xt gt gt gt r so m e te xt Synt
  • 古老的“字幕”标签的替代品?

    marquee 标签的标准等效项是什么 我正在寻找 HTML C asp NET 或 ASPX jquery java 脚本的解决方案 marquee 标签未包含在标准中 因为它是 视觉 标签 而不是 语义 标签 因此 您想要的任何语言都没
  • 链接无效

    我正在尝试使用以下命令创建一组指向页面中特定部分的链接 a href 符号 但它似乎不起作用 点击链接似乎没有任何反应right click gt open in a new tab更改 url 但不会移动到页面的其他部分 我使用的是火狐浏
  • 使用 python 在一个 html 页面中显示分割数据框的 HTML 代码

    我是 html css 新手 所以对以 html 格式显示的数据有疑问 我有一个很长的列表 我想将其拆分并以 html 格式显示为两个单独的列 例如 而不是 Col1 Col2 1 a 2 a 3 a 4 a 5 b 6 b 7 b 8 b
  • 在 HTML5 Javascript 中将 BlobBuilder 转换为字符串

    function blobToString blob var reader new FileReader var d reader onloadend function d callback reader result console lo
  • 在 Angular html 模板中访问常量枚举

    假设我有一个常量枚举 export const enum MyConstEnum Value1 Value1 Value2 Value2 Value3 Value3 现在我想在我的 Angular 模板中使用它 span This has
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • Java:如何从转义的 URL 获取文件?

    我收到了一个定位本地文件的 URL 事实上我收到的 URL 不在我的控制范围内 URL 按照 RFC2396 中的定义进行有效转义 如何将其转换为 Java File 对象 有趣的是 URL getFile 方法返回一个字符串 而不是文件
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • MVC 模式中的验证层

    验证模型将使用的数据的最佳位置在哪里 例如 考虑登记表 我们有一些来自注册表的数据 那么验证这些数据的最佳位置在哪里 我们应该通过 if 语句或特殊的验证器类来检查每个数据 这意味着大量的编码 所以我想了解在哪里可以做到这一点 在控制器中
  • 如何在模态打开时防止主体滚动

    我在用着W3schools 模态脚本 https www w3schools com howto tryit asp filename tryhow css modal我想添加一个功能 防止模型打开时整个主体滚动 我根据我的需要对原始脚本做
  • 为什么我的交互式图像仅在 Internet Explorer 上出现故障?

    我的问题 我为自己制作了一个图像地图 交互式图像 它在 Chrome safari 和 Firefox 上完美运行 然而 当我在可怕的互联网浏览器上尝试它时 它真的很糟糕 这些小点应该扩展到更大的盒子中 在互联网浏览器上它要么不起作用 要么
  • 具有 100% 高度行和 Internet Explorer 9 的表格

    我有以下示例 div style height 150px background color AAAAFF div
  • 表单发布请求并存储收到的数据

    我有一个非常简单的表单 在提交时发出发布请求
  • shell中如何分割字符串

    我有一个变量作为 string ABC400p2q4 我怎样才能分开ABC400 and p2q4 我需要将它分成两个变量 结果我得到 echo var1 ABC400 echo var2 p2q4 可以用任何字母字符代替 ABC 可以用任
  • 禁用 notInArray 验证器 Zend Framework 2

    有没有办法在 Zend Framework 2 中禁用 notInArray Validator 互联网上的所有信息都显示如何在 Zend Framework 1 中禁用 notInArray Validator 例如以这种方式 如果您根本
  • 禁用允许文本选择的

    残疾人可以吗

随机推荐

  • 为TaskTracker子进程配置内存的不同方式(Mapper和Reduce任务)

    设置和设置有什么区别mapred job map 内存 mb and mapred child java opts使用 Xmx 来控制Mapper 和Reduce 任务使用的最大内存 哪一个优先 Xmx指定分配的jvm的最大堆空间 这是为对
  • 用Java生成真值表

    我正在尝试打印一些真值表作为学校作业的一部分 如何在 Java 中生成动态大小真值表 So that printTruthTable 1 prints 0 1 printTruthTable 3 prints 0 0 0 0 0 1 0 1
  • 在 Hyperledger Fabric CA 中注册和注册证书有什么区别

    在 Hyperledger Fabric CA 中注册和注册证书之间到底有什么区别 我是密码学新手 我对 Fabric CA 的工作感到非常困惑 此外 通过 cryptogen 生成的证书与通过 Fabric CA 生成的证书不同 因此 根
  • 为什么自定义对象不等于 HashMap 的键?

    我在使用自己的类作为 HashMap 的键时遇到问题 public class ActorId private final int playerId private final int id ActorId int playerId int
  • 如何在我的应用程序中选择出口合规性?

    我正在提交审核 但不确定Export Compliance问题Is your app designed to use cryptography or does it contain or incorporate cryptography S
  • Fluent Validation,Asp.NET Core 中列表中每个项目的不同验证

    我一直在尝试找到一种方法来验证列表中的项目 每个项目都有不同的验证规则 我发现 Fluent 验证是一个很棒的库 但我似乎找不到一种方法来单独对每个项目进行验证 我从这个类似的线程中得到了一个模糊的想法 使用流畅验证验证 2 个列表 但我不
  • 根本无法让 phing 运行

    Mac OS X 10 7 当我运行时phing v我收到以下错误 Warning require once phing Project php failed to open stream No such file or directory
  • 如何在Windows 8中在线播放背景音乐

    在我的应用程序中 我使用 UI MediaElement 但是当我点击Windows键时 音乐就停止了 我尝试使用 MediaControl PlayPressed MediaControl PlayPressed MediaControl
  • 如何使用我的主题指定黑暗操作模式

    我知道有几个关于设置操作栏的上下文操作栏 ActionMode 部分样式的问题 但它们似乎并没有完全解决我所追求的问题 我使用带有浅色主题和深色操作栏的工具栏 工具栏看起来像我想要的 但操作模式看起来像常规的深色主题 我需要改变什么风格才能
  • 如何在 Android 应用程序中执行 SQLite 查询?

    我试图在我的 Android 数据库上使用此查询 但它不返回任何数据 我错过了什么吗 SQLiteDatabase db mDbHelper getReadableDatabase String select Select id title
  • 将两个不同的 servlet 映射到相同的 URL 模式

    我遇到了一个别人写的J2EE项目 当我来到web xml 有两个不同的 servlet 映射到同一 URL 模式 我想知道这种方法的目的 它究竟是如何运作的以及目的是什么 这是相关部分web xml
  • 延迟约束检查

    目前 在我们的数据库设计中 我们在两个实体之间存在循环引用 换句话说 我们在每个表中都有外键 它们引用彼此的主键 为了在这些表中插入记录 我们需要执行延迟约束检查 这在 SQL Server 2008 中可能吗 我知道 Oracle DDL
  • 在 Visual Studio C# 中创建具有动态选项卡数量的选项卡控件

    如何在 Visual Studio C 中创建具有动态选项卡数量的选项卡控件 我有一个带有表的数据库customers 我需要创建一个表单 显示带有客户姓氏首字母的选项卡 仅显示表中应有条目的首字母 每个选项卡都应包含一个具有相应客户的 D
  • 对于 API 级别 < 11,getCheckedItemCount() 的等效项是什么?

    我正在使用此方法来检查检查了列表上的多少个项目 但收到此错误 表明此方法不适用于任何早于 11 的 SDK API 级别 8 中的 this 相当于什么 接受的答案对我不起作用 总是返回 0 我不得不使用以下代码 public static
  • 如何获取 C 中动态创建的结构数组的长度?

    我目前正在尝试获取动态生成的数组的长度 它是一个结构数组 typedef struct my data unsigned int id double latitude double longitude unsigned int conten
  • Singleton 和 @Autowired 返回 NULL

    我有一个存储库管理器来管理我的存储库 我有 Autowired 来实例化我的属性 但它们始终为空 bean 在我的 xml 中配置正确 有什么理由吗 public class RepositoryManager private static
  • 测量 Android 应用程序花费的时间

    我是安卓新手 在我的应用程序中 我想跟踪其他应用程序 安装在设备上 的使用时间 在前台 是否可以 如果是的话怎么办 提前致谢 首先 这里需要知道什么是在前台运行的应用程序 您可以使用以下命令检测当前的前台 后台应用程序ActivityMan
  • 如何在 Swift 3 (XCode 8) 中从文本文件读取数据

    首先我想从我现在的情况说起 1 现状 我有一个文本文件 data rtf 我也尝试过并且愿意使用 plist 或任何其他格式来获得结果 我一直在尝试从此文件中读取任何数据 并在标签上显示该数据 我尝试过预填充文件 在读取文件之前保存到文件
  • 使用 Boto 读取 S3 中文件的一部分

    我正在尝试读取存储在 S3 中的 700MB 文件 然而我只需要位置 73 到 1024 之间的字节 我试图找到一个可用的解决方案 但未能成功 如果有人能帮助我 那将是一个很大的帮助 S3支持使用 Range HTTP 标头的 GET 请求
  • 在用户提交的数据中不转义 & 符号是否存在安全风险?

    在显示用户生成 提交的信息时 转义其他特殊字符但不更改与号是否存在安全风险 我想让我的用户自由输入 html 实体 十六进制和十进制特殊字符 而不会给我的清理程序增加不必要的复杂性 这完全取决于数据放入的上下文 在 HTML 中 表示纯文本