• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > JavaScript语言精粹关于解析URL正则问题

JavaScript语言精粹关于解析URL正则问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了javascript跳转url,javascript url,javascript url编码,javascript 获取url,javascript:jump2url等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:JavaScript 语言精粹关于解析 URL 正则问题
描述:

第68页讲解url的正则

var parse_url = /^(?:(A-Za-z)+:)?(\/{0,3})(0-9.\-A-Za-z]+)(?::(\d+))?**(?:\/([^?#]*))**?(?:\?([^#]*))?(?:#(.*))?$/;

说 (?:\/([^?#]*)) 这个 [^?#] 会有渗漏的风险。
请问:

  1. 什么时候会有这种风险呢?
  2. 严谨的url正则应该怎么写?
  3. 为什么schema后面匹配的是(\/{0,3})?

解决方案1:

一、会有什么风险
刚好jQuery源码中也有匹配URL相关的正则表达式,看这里http://bugs.jquery.com/ticket/9521
就会知道不安全的#可能会引起xss问题。
有一个例子提到如果在url的后面有这么一段hash#p=<img src%3D/%20onerror%3Dalert(1)>,而由于src指向的地址不存在就会触发后面的onerror监听函数,那么就可以做其他坏事了,举例这里只是alert(1)。
参考: https://twitter.com/bulkneets/statuses/156620076160786432

三、schema后面为什么是0-3个的/,
1. 如果省略掉了前面schema了,那么/可能就是不需要的
如没有http:就可以不要//了,直接www.baidu.com就好了,不用http://www.baidu.com

  1. 有了schema后,后跟两个/就比较常见了,如http://, ftp://;

  2. 一个/的情况,可能是相对路径吧,举例就像~/user/123

  3. 三个/的情况,其实是file:///


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • javascript触发持久化的url是如何拼装的
  • JavaScript语言精粹关于解析URL正则问题

相关文章

  • 2017-06-07 python打印杨辉三角
  • 2017-06-07 (VFP)复制一SQL表后,如何让主键重新计数
  • 2017-06-07 (python)如何复制Spyder中Variableexplorer中的array或者matrix到其他文件中?
  • 2017-06-07 简单的文本编辑器保存不了颜色和字体
  • 2017-06-07 python插入数据到mysql遇到的问题
  • 2017-06-07 c语言编译器下载有没有一种编译语言像python一样方便高效?
  • 2017-06-07 (python)如何从一个复杂的结构中优雅的提取出一列数据
  • 2017-06-07 已经大三了可是我还没有确定方向求指导PS本人对算法很感兴趣学过一点java,c++,可是专业是硬件方向,不喜
  • 2017-06-07 python-markdonw2代码块中的制表符被解析
  • 2017-06-07 jbuilder+jboss启动时报错~~(在线等)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Mac终端输入gcc出现问题
    • ng-repeat怎么实现的?
    • shell排序去重问题
    • 已经ping通还是无法使用mac上的shadowsocks登陆,手机端却可以……
    • python打印杨辉三角
    • (python)pip安装lxml失败
    • 二分查找的问题,对于mid=beg+end-beg/2与mid=beg+end/2区别?
    • 有没有在线编写restfulAPI的网站?
    • (python)pipinstallmatplotlib安装失败
    • python爬虫(python)匹配某一行并保留大写字母?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有