Web安全入门-网络资源的访问-URL

2025-03-09 0 5,721

常见的网络访问标志 – URL

在计算机中,我们常常都会使用浏览器访问互联网上的资源,浏览器运行我们提供待检索信息,然后浏览器会将检索结果返回到前端页面中,当我们打开某条结果后,就会发现浏览器进入到了另一个页面,在打开新页面的同时,新页面的上方会有一串英文字符https://xxx

什么是URL

新页面伴随的神秘英文字符串https://xxx就是URL Uniform Resource Locator

通过URL可以访问指定的网络资源,而URL可以看作是URI Uniform Resource Identifier的子集,URI为资源提供的唯一的标识符,与URL的区别在于,URL即提供资源的访问方法,又提供资源的标识符,而URI只提供资源的标识符。

只提供资源的标识符的URI,有这样的一种场景,就是为书籍提供唯一的标识名称,这种方式也被称作是URN Uniform Resource Name

URL的构成 – 网络协议

在URL标准中,顶在://前的字符串就是当前使用的协议名称。

URL可用的网络协议由互联网数字分配机构IANA Internet Assigned Numbers Authority维护,IANA常见支持的协议有https://ftp://等等。

除了IANA支持的协议外,浏览器一般还会支持一些第三方的协议。

网络协议的主要作用就是定义对象间使用网络进行交流时的语言规则。

1
| device A | <- scheme -> | device B |

URL通过scheme://指定的网络协议,与提供资源的服务端进行流程的沟通。

网络协议一般会要求客户端按照将数据按照指定格式填充后再提交给服务端,报文的封装可能是客户端自身完成的,也可能是客户端使用第三方插件完成的,

除了用于数据传输的协议,一些强大的客户端(比如浏览器)还支持一些伪协议,这种伪协议大致可以分成两类。

一是类似于javascript:的伪协议(javascript:支持HTML元素执行JavaScript代码),其作用是借助伪协议在网页中获取代码执行或控制权限。

二是类似与view-source:的伪协议(view-source:强制网页显示源代码),其作用是强制网页安装伪协议要求的格式显示网页内容。

伪协议在URL中,一般会放在正常协议的前面。

1
fake_scheme:shceme://xxx

URL的构成 – 域名与端口

IP地址

因特网协议IP Internet Protocol为每个连接到网络的设备分配了一个数字地址,这个数字地址也被称作是IP地址,IP地址是设备的唯一编号,IP地址保证了设备可以在网络上被准确的识别出来。

IP地址可以分成IPv4和IPv6两种,它们的作用都是一样的,区别在于IPv4可以容纳的地址空间远远小于IPv6,随着越来越多的设备接入网络,IPv4开始面临空间容量带来的问题,因此IPv6横空出世,提供更加广阔的地址空间给接入网络的设备。

互联网的资源都位于终端上,想要访问网络上资源就要找到对应的设备,因此IP地址是极其重要的,借助它才可以找到设备。

IP命令输出信息解析

Linux系统当中,可以使用ip命令或ifconfig命令快速查看IP地址信息,值得注意的是,ifconfig命令在某些较新的发行版中已经被弃用了。

通过ip命令的address选项可以列出所有的网络信息,网络信息的数量由当前系统上可用的网络接口(有线网络接口、无线网卡等等)数量决定。

wlP2p33s0中的wlWLAN Wireless Local Area Network的缩写,代表着无线局域网,enP4p65s0enP3p49s0中的en代表以太网ethernetlo代表着本地网络,它是loopback的缩写,wlenlo是三种最为常见的网络接口。

lo是一种虚拟接口,任何送到该地址的数据都会由设备自身接收。

在当前系统中有两个有线网口以及一个无线网卡,是可以跟ip address的结果呼应上的。

<BROADCAST,MULTICAST,UP,LOWER_UP>是网络设备的状态标识,BROADCAST代表设备支持广播,MULTICAST代表设备支持多播,UP代表网络接口已启用,LOWER_UP代表接口已经连接到网络,除此之外,还有一个常见的NO-CARRIER,它代表接口没有连接到网络。

MTU Maximum Transmission Unit记录了接口可以传输数据包的最大大小是多少字节,数据包的排队规则由QDisc Queueing Discipline标明,state记录当前网口的状态,传输队列的长度由QLen标明。

link/ether记录了的物理地址MAC,brd记录了广播地址,inetinet6分别对应IPv4协议和IPv6协议。

1
2
3
4
5
6
7
8
ip address
1: lo
2: enP4p65s0
3: enP3p49s0
4. wlP2p33s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 30:05:05:94:b0:5b brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.33/24 brd 192.168.1.255
    inet6 2409:8a3c:a24:a5b0:1be3:352c:6a5f:b19d/64

接口enwl后面的字符串代表接口在PCI中的索引编号,以wlP2p33s0为例,P2代表接口设备在2号PCI上,p33中的33换成16进制就是0x21,代表33号总线,最后的s0指的是接口设置在PCI的0号插槽上。

1
2
3
4
lspci / lspci -vvv
0002:21:00.0 Network controller: Intel Corporation Wi-Fi 6E(802.11ax) AX210/AX1675* 2x2 [Typhoon Peak] (rev 1a)
0003:31:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
0004:41:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)

内网IP与公网IP

ip address获得的IP一般都是局域网IP(也被称作是内网IP),与内网IP对应的是公网IP,公网IP指的是网络服务提供商(比如联通或移动)ISP Internet Service Provider向因特网信息中心INIC Internet Network Information Cetner申请到公网IP,会将此公网IP分发给设备。

公网IP最大的好处就是允许互联网中其余的设备访问,内网IP就没有这个好处了,内网IP只能被位于同一局域网内的设备访问。

当内网IP需要访问互联网时,会出现无法访问的情况,内网IP无法跨越“结界”工作,这个“结界”就是局域网,局域网环境由路由器提供,ISP会将公网IP分配给路由器,为了让内网IP可以访问互联网,路由器会将内网IP转换成公网IP,进而让局域网中的设备达到访问互联网的目的,因为路由器的公网IP只有一个,所以局域网中的所有设备使用的都是一个公网IP。

1
2
3
4
router <- ISP <- public network ip address <- INIC
router -> intranet ip address -> devices
    devices: want to access public network!
        devices -> intranet ip -> router -> public network ip

如果当前设备使用的是内网IP,想要知道对应的公网IP,可以借助一些IP查询网站的帮助,比如cip.ccipinfo.io等等,通过curl xxx可以直接获得结果。

ip命令除了查看网络信息外,还可以修改各种信息,包括但不限于IP地址、子网掩码、广播地址、MAC地址等等。修改MAC地址的功能值得特别关注下,因为MAC地址的唯一性,使得它变成了识别追踪计算机的一个有利特征,通过伪造MAC地址,可以让这种特征不知明显。

1
ip link set $device addesss $new_mac_address

域名

IP地址最常见的组合方式就是0 - 255的10进制数字和点号.,比如127.0.0.1,但是数字和.的组合难免有些难以分辨,为了提高计算机在众多网络设备中的辨识度,计算机允许为IP地址配一个名字,比如http://www.baidu.com,它也被称作是域名。

域名到IP地址的映射建立的工作由DNS Domain Name System负责完成。

域名解析的常见方法

Linux中可以通过resolvectlnslookupdigping等命令获取域名的IP地址。

Linux处理DNS解析流程概览

如果通过strace工具追踪nslookup运行过程中产生的系统调用,会发现nslookup程序会打开一个名为/etc/resolv.conf的文件,文件内容中有个很重要的成员nameserver,它指示DNS的查询服务器是什么。

/etc/resolv.conf通常都是一个软链接,指向systemd-resolved服务创建的文件。

systemd-resolved是Linux上的系统服务,用于给本地端提供域名解析服务,借助命令resolvectl可以查看systemd-resolved当前的状态。

1
2
3
4
5
6
7
cat /etc/resolv.conf
nameserver 127.0.0.53
options edns0 trust-ad
search .
ls -lh /etc/resolv.conf
/etc/resolv.conf -/run/systemd/resolve/stub-resolv.conf

systemd-resolved除了创建stub-resolv.conf,还创建了resolv.conf文件,它们的主要区别就在nameserver上。文件stub-resolv.conf指向127.0.0.53,而文件resolv.conf则指向192.168.1.1以及fe80::1%4

1
2
3
4
cat /run/systemd/resolve/resolv.conf
nameserver 192.168.1.1
nameserver fe80::1%4
search .

127.0.0.53对应本地DNS服务器systemd-resolve

1
2
sudo ss -tlp
LISTEN 0      4096   127.0.0.53%lo:domain        0.0.0.0:*     users:(("systemd-resolve",pid=12003,fd=15))

至于192.168.1.1以及fe80::1%4则是路由器的保留IP,它们是网关,网关负责局域网与互联网建立链接。

1
2
3
4
ip -6 route show
fe80::/64 dev wlP2p33s0
ip -4 route show
192.168.1.0/24 dev wlP2p33s0

stub-resolv.confresolv.conf的区别在于,一个利用systemd-resolve对DNS进行解析,另一个则利用路由器网关解析DNS。

Linux本地解析DNS的方案

如果通过strace追踪ping命令,会发现/etc/nsswitch.conf/etc/hosts文件被打开了,nsswitch的全称是name service switch configuration,该文件的作用是指示服务搜索信息时的优先级,对于DNS解析来讲,/etc/hosts的优先级是排在最前面的。

1
2
3
4
cat /etc/nsswitch.conf
......
hosts:          files mymachines dns myhostname
......

/etc/hosts文件是Linux提供的本地DNS配置文件,在文件中添加ip domain_name,可以让域名匹配指定的IP地址,更新完/etc/hosts文件后,可能需要更新下DNS缓存,通过命令resolvectl flush-caches可以完成缓存的更新,show-cache选项可以查看缓存。

假如通过ping命令看一下hahahaha_kukukuku.com的IP地址,会发现这个域名实际上是不存在的,但修改/etc/hosts文件并刷新缓存后,就可以ping通这个奇怪域名了。

1
2
3
4
5
6
7
8
9
设置前:
ping -1 hahahaha_kukukuku.com
ping: hahahaha_kukukuku.com: Name or service not known
修改/etc/hosts:
+ 39.156.66.14 hahahaha_kukukuku.com
刷新缓存后:
ping -1 hahahaha_kukukuku.com
PING hahahaha_kukukuku.com (39.156.66.1456(84) bytes of data.
64 bytes from hahahaha_kukukuku.com (39.156.66.14): icmp_seq=1 ttl=53 time=21.2 ms

端口

IP地址对应的计算机可以看作是一个大型商城,商城中有许多的店铺,用户想要买某样东西,就要前往对应的店铺,对于IP地址来讲,它的店铺也被称作是端口。

在计算机中,协议可能会固定占用某个端口,比如https默认占用端口443,SSH服务默认占用的端口是22。

在Linux当中可以通过命令lsof -i:[port]查看使用端口的程序以及IP地址是什么。

URL的构成 – 文件路径

URL支持使用UNIX目录xxx/xxx/xxx的格式访问资源内的子级资源。

比如B站,它是一个知名视频网站,主要功能就给已注册的用户提供观看视频和上传视频的途径,通过URLhttps://space.bilibili.com可以访问B站的主页,在主页URL后加上用户ID就可以访问用户主页,在主页URL后加上video关键字以及视频ID就可以观看视频。

1
2
3
4
5
6
主页的URL:
https://space.bilibili.com
UP主的URL:
https://space.bilibili.com/525929512
视频的URL:
https://http://www.bilibili.com/video/BV1x54y1z7kb

上面提过URL的子级资源访问与UNIX目录规则类似,显著的特征就是既支持全路径又支持相对路径../,不过相对URL如何解析成绝对URL是个不太容易处理的事情,最好是要求写成绝对URL避免一些不必要的麻烦。

URL的构成 – 查询字符串

URL中是运行包含参数的,参数的起始标志是问号?,后面传递的参数以name=value的形式出现,多个参数之间通过&连接。

1
?name_1=value_1&name_2=value_2&...

在下面的示例链接中,URL传递了spm_id_fromvd_source两个参数,=后面是数值。

1
https://http://www.bilibili.com/video/BV1EBraYaErK/?spm_id_from=333.1387.homepage.video_card.click&vd_source=5dda6fee8ab94b9754b6c7b40233960f

URL的构成 – 片段ID

片段ID是一个很少见的元素,服务端可以使用它接收参数,但一般都是客户端在使用它,客户端一般都是用片段ID保存一些临时数据。

最常见的场景就是网页内的定位标志,比如在下面的URL中#后接了一串字符,这串字符解析成中文就是总结,通过下面的URL进入网页后,会直接进入网页中的总结部分,而不是从头开始浏览网页。

1
https://blog.xlab.qianxin.com/li-yong-ssh/#%E6%80%BB%E7%BB%93

在URL中存在一些保留字符,保留字符拥有着特殊的含义,如果想要直接使用保留字符,那么需要借助%ASCII%是转义开始的标志,%后面是保留字符对应的ASCII码。

URL的构成 – 身份认证

有些服务端需要验证客户端的身份后,才允许客户端访问资源,携带客户端身份信息的方式有很多种,URL就是其中一种。

在URL中允许放置账户名和账户密码作为身份信息。

1
scheme://count:password@domain:port/xxx
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

注:在使用本系统时,使用方必须在国家相关法律法规范围内并经过国家相关部门的授权许可,禁止用于一切非法行为。使用用途仅限于测试、实验、研究为目的,禁止用于一切商业运营,本团队不承担使用者在使用过程中的任何违法行为负责。

83源码 WEB安全 Web安全入门-网络资源的访问-URL https://www.83ym.com/80.html

认准唯一TG:@ym830

常见问题
  • 站内所有资源,针对不同等级VIP会员可直接下载,特殊资源商品会注明是否免费,指会员所享有根据选择购买的会员选项所享有的特殊服务,具体以本站公布的服务内容为准。
查看详情
  • 按照我国的法律规定,运营网络棋牌首先需要成立一个注册正规备案的公司,然后申请网站备案、文网文、ICP等等,这些证件缺一不可。 一.注册公司 在当地工商进行注册,公司名称以“XX科技有限公司”为名,如:富裕棋牌经营范围填写“计算机软硬件、网络设备的设计开发与购销”。 二.域名及网站备案 在国内从事网站经营活动就必须经过相关部门的备案,因此棋牌运营商在购买了域名后,就要到当地网监局办理网站备案,或者请服务器提供商代为备案。 三.申请文网文 文网文全称为网络文化经营许可证,是从事经营性互联网文化活动所必需的资质。一般是需要到当地省一级(省、直辖市、自治区)的文化行政部门提出申请,并经由当地的文化行政部门合法批准。次资质要求申请公司注册资金必需达到1000万,并提供游戏版权证明文件。 四.申请ICP ICP又称为增值电信业务许可证,所有网络游戏运营商均需要办理ICP许可证,此证件要求公司注册资金1000万,需到当地市级通讯管理局办理。 五.申请文网游——游戏备案 根据《网络游戏管理暂行办法》(文化部第49号)的规定,国产网络游戏在上网运营之日起30日内应当按规定向国务院文化行政部门履行备案手续。 以上就是网络棋牌游戏正规运营所必需的资质证明。一般作为正规有实力的棋牌游戏开发公司,不光要具备所有的正规资质,而且会对投资者、代理商等合作伙伴给予相关指导和协助,与合作伙伴携手共赢!
查看详情

相关文章

猜你喜欢
官方客服团队

为您解决烦忧 - 24小时在线 专业服务