HTML属性上下文编码不受信任的数据的正确方法是什么?例如:

我通常使用htmlentities()或htmlspecialchars()来执行此操作:

但是,我最近遇到了一个问题,当我需要传递的数据是一个需要传递给JavaScript以更改页面位置的URL时,这会破坏我的应用程序:

// ...

window.location = document.getElementById('foo').value;

// ...

在这种情况下,foo是一个C程序,它不理解URL和段错误中的编码字符.

我可以简单地在JavaScript中获取值,并执行类似value.replace(‘& amp;’,’&’)的操作,但这看起来很糟糕,只适用于&符号.

所以,我的问题是:是否有更好的方法来对注入HTML属性的数据进行编码或解码?

我已经阅读了OWASP’s XSS Prevention Cheatsheet的所有内容,只要我小心引用我的属性就听起来像那么我需要编码的唯一字符是引用本身(“) – 在这种情况下,我可以使用像str_replace(‘“’,’& quot;’,…) – 但是,我不确定我是否正确理解它.

php解码html,PHP:HTML属性编码/ JavaScript解码相关推荐

  1. php base64解码,PHP Base64 中英文编码 JavaScript 解码

    最新PHP Base64 中英文编码 JavaScript 解码 以下是三零网为大家整理的最新PHP Base64 中英文编码 JavaScript 解码的文章,希望大家能够喜欢! function ...

  2. android Java BASE64编码和解码二:图片的编码和解码

    1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...

  3. python网络编程编码和解码_python编程中的编码和解码问题

    在编程中,对编码和解码感到困惑,经常会莫名其妙的出现一些问题,根据需要解决的问题,有以下几种情形: 1.在python2.7以下版本中,unicode和string的转换问题.对于一个变量v,是不是因 ...

  4. JPG文件编解码详解——详细介绍编码和解码JPG

    http://blog.csdn.net/zhengzhoudaxue2/article/details/7693258 JPEG文件编/解码详解 cat_ng 猫猫 JPEG(Joint Photo ...

  5. linux url解码,js对url进行编码和解码(三种方式区别)

    *** 只有 0-9[a-Z] $ - _ . + ! * ' ( ) , 以及某些保留字,才能不经过编码直接用于 URL. ***例如:搜索的中文关键字,复制网址之后再粘贴就会发现该URL已经被转码 ...

  6. js uri解码_js对url进行编码和解码(三种方式区别)(转)

    *** 只有 0-9[a-Z] $ - _ . + ! * ' ( ) , 以及某些保留字,才能不经过编码直接用于 URL. ***例如:搜索的中文关键字,复制网址之后再粘贴就会发现该URL已经被转码 ...

  7. python解码utf报错_Python编码-无法解码为utf8

    Python试图通过将文本片段(作为字节存储在数据库中)转换为Pythonstr对象来提供帮助.为了进行这种转换,python必须猜测查询返回的每个字节(或字节组)代表的字母.默认猜测是一种称为utf ...

  8. java中的解码和编码_关于java中编码和解码(一)

    关于java中编码和解码(一) 关于java中编码和解码(一) 计算机中所能表示的字符仅仅为0-255个,平时我们用到的语言太多,计算机本身根本无法表示.必须将我们的不同的语言转换为计算机所能理解的语 ...

  9. python-base64编码与解码

    base64编码原理: 例如: 实例一: #-*- coding: UTF-8 -*-__author__ = '007' __date__ = '2015/12/23'import base64co ...

最新文章

  1. 华为计算平台MDC810发布量产
  2. zabbix详细介绍及其自动动态发现
  3. Android Retrofit使用教程(三):Retrofit与RxJava初相逢
  4. js/jq基础(日常整理记录)-3-一个自定义表格
  5. Python编程基础:第二十四节 作用域Scope
  6. 不起作用 微信小程序 顶部json_微信小程序之 新建项目默认结构
  7. aria-required属性学习笔记
  8. 数据时代,信息的无处遁形
  9. Ubuntu16.04安装JDK1.8
  10. [每天一个知识点]14-Java语言-字符串拼接
  11. 基于JAVA+Servlet+JSP+MYSQL的在线购物系统
  12. [CTO札记]电纸书,将成为教学、阅读潮流
  13. 计算机连接打印机用户数量修改,win7电脑中局域网限制每台打印机的使用成员数量的方法...
  14. 不想使用Windows自带远程桌面客户端的另外一种选择
  15. 前端工程师必备的Nginx知识
  16. linux 修改路由表 永久,CentOS 6.9永久设置静态路由表以及路由表常用设置
  17. xmind贴纸_如何使用彩色背景或大贴纸创建Facebook状态
  18. 损失函数——均方误差(Mean Squared Error,MSE)
  19. 自制Chrome绿色版
  20. 《JQuery实战之硕果》

热门文章

  1. MQ消息中间件技术浅析
  2. 小米2s自带rec刷root_小米小白刷机保姆级指南 !!
  3. 注册电气工程师---------预备考
  4. (持续学习)世界上最神奇的24堂课-----第二课 思维就是能量
  5. 从零学Java(29)之方法重载
  6. PowerEdge T430 硬件配置检测清单
  7. php微信外卖多店点餐小程序,微信外卖点餐小程序怎么制作?按这个步骤来就行...
  8. 2020警博会,快商通邀您共赏声纹风“警”线
  9. Ps最细笔记从零开始教成一名Ps精通运用者带你一天学会所有基本操作
  10. Matlab代码实现强化学习(Reinforcement Learning) 二维迷宫探索——Q-learning与SARSA对比