当前位置:  开发笔记 > 前端 > 正文

URL可以包含分号吗?

如何解决《URL可以包含分号吗?》经验,为你挑选了5个好方法。

我使用正则表达式将纯文本URL转换为可单击的链接.

@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.-]*(\?\S+)?)?)?)@

但是,有时在文本正文中,URL每行枚举一个,末尾用分号.真实的URL不包含任何";".

http://www.aaa.org/pressdetail.asp?PRESS_REL_ID=275;
http://www.aaa.org/pressdetail.asp?PRESS_REL_ID=123;
http://www.aaa.org/pressdetail.asp?PRESS_REL_ID=124

是否允许在URL中使用分号(;)或分号是否可以作为URL结尾的标记?这怎么会适合我的正则表达式?



1> Greg..:

分号是保留的,除非其特殊用途(取决于方案),否则不得使用未编码的分号.第2.2节:

许多URL方案保留某些特殊含义的字符:它们在URL的特定于方案的部分中的外观具有指定的语义.如果在方案中保留对应于八位字节的字符,则必须对八位字节进行编码.字符";","/","?",":","@","="和"&"是可以为方案中的特殊含义保留的字符.在方案中不能保留其他字符.



2> 小智..:

W3C鼓励CGI计划接受; 以及&在查询字符串中(即对待?name=fred&age=50?name=fred;age=50相同的方式).这应该是因为&必须编码为& 在HTML中; 没有.


W3C的鼓励似乎主要在这里... http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#hB.2.2

3> 小智..:

分号是合法的URI字符; 它属于sub-delimiter类别:http://www.ietf.org/rfc/rfc3986.txt

但是,规范声明半色是否对特定 URI 合法取决于该URI的方案或生产者.因此,如果使用这些链接的站点不允许使用分号,那么它们对于该特定情况无效.



4> EricLaw..:

http://www.ietf.org/rfc/rfc3986.txt涵盖了URL和以未编码形式出现的字符.鉴于包含分号的URL在浏览器中正常工作,您的代码应该支持它们.



5> 小智..:

从技术上讲,分号是URL字符串中的合法子分隔符; 上面引用了大量的源材料,包括http://www.ietf.org/rfc/rfc3986.txt.

有些人的确是使用它的合法目的,虽然它的使用是位点特异性的可能(即仅适用于该网站的使用),因为它的使用必须通过使用它的网站定义.

但在现实世界中,URL中分号的主要用途是隐藏合法URL后面的病毒或网络钓鱼URL.

例如,向某人发送包含以下链接的电子邮件:

http:// www.yahoo.com/junk/nonsense;0200.0xfe.0x37.0xbf/malicious_file/

将导致雅虎!链接(www.yahoo.com/junk/nonsense)被忽略,因为即使它是合法的(即,正确形成),也不存在这样的页面.但是第二个链接(0200.0xfe.0x37.0xbf/malicious_file /)可能存在*并且用户将被定向到malicious_file页面; 一个人的公司IT经理将得到一份报告,一个人可能会得到一个粉红色的单据.

在此之前所有的说话者都说得好,这正是新的Facebook网络钓鱼问题的解决方法.这些名字已经改变,像往常一样保护有罪.

*根据我的知识,实际上并没有这样的页面.显示的链接仅用于本讨论.


哪个应用程序打开`0200.0xfe.0x37.0xbf`,因为它知道雅虎链接将返回404状态?!对我没有意义.
推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有