URL - Fiddler - IIS
URL和URI
- URI:Uniform Resource Identifier,唯一标识一个网络资源
- URL:Uniform Resource Locator,指向网络资源地址
URL是URI的子集,只有提供了访问机制(http://
or ftp://
)的URI才是URL。
通常URL是绝对路径,URI可以是相对或绝对路径。
URL标准格式:scheme://host[:port#]/path/.../[;url-params][?query-string][#anchor]
scheme //有我们很熟悉的http、https、ftp以及著名的ed2k,迅雷的thunder等。
host //HTTP服务器的IP地址或者域名
port# //HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如tomcat的默认端口是8080 http://localhost:8080/
path //访问资源的路径
url-params //所带参数
query-string //发送给http服务器的数据
anchor //锚点定位
在 URL详解 中,文中安利了一种解析URL各部分的方法,以备不时之需,赞!
转义处理
URL中特殊符号对应的十六进制编码
+:URL 中+号表示空格, %2B
空格:URL中的空格可以用+号或者编码, %20
/:分隔目录和子目录, %2F
?:分隔实际的URL和参数, %3F
%:指定特殊字符, %25
#:表示书签, %23
&:URL中指定的参数间的分隔符, %26
=:URL中指定参数的值, %3D
利用.Net中提供的 QueryString 方法,可以获取指定参数的值
HttpRequest.Request.QueryString["foo"]
该方法会将被转义的字符还原成原字符。
关于HtmlEncoe
将html源文件中不容许出现的字符进行编码,通常是编码以下字符:"<"、">"、"&"、"""、"'"等。
注意,Server、HttpServerUtility实体类、HttpUtility三者的HtmlEncode方法本质一样。
网址编码
JavaScript中编码方法
- escape:不建议使用
- encodeURI:用于对网址编码,但不包含参数,不对冒号(:)、斜杠(/)编码
- encodeURIComponent:用于对URI中(指定)的参数编码,对空格,井号(#),斜线(/),冒号(:)都编码
// encodeURI
http://www.cnblogs.com/a file with spaces.html"
http://www.cnblogs.com/a%20file%20with%20spaces.html // encodeURIComponent
http://www.cnblogs.com/?key="+encodeURIComponent(param)+"&page=1
http://www.cnblogs.com/?key=%E5%8D%9A%E5%AE%A2%E5%9B%AD&page=1
.Net中编码方法
- Server.UrlEncode,HttpUtility.UrlEncode:不推荐,因为会对冒号(:)和斜杠(/)编码
- Uri.EscapeUriString:用于对网址编码,但不包含参数,不对井号(#)、冒号(:)、斜杠(/)编码,类似JavaScript中的encodeURI方法
- Uri.EscapeDataString:用于对URI中(指定)的参数编码,对冒号(:)、斜杠(/)、空格、井号(#)都编码,类似JavaScript中的encodeURIComponent方法
具体参见:从此不再惧怕URI编码:JavaScript及C# URI编码详解
Request.UrlReferrer
获取客户端上次请求的url的有关信息,具体参见:C# Request获取url
此处,给出几个应该注意的问题
- 点击刷新按钮不会改变Request.UrlReferre,页面回发后会改变Request.UrlReferrer将其指向当前页面
- “上一次”的url可能不存在(比如,直接地址栏输入当前页面链接),使用前需进行null判断
- 上一页使用document.location方法或在Page_Load事件中Response.Redirect/Server.Transfer方式导航到当前页面,Request.UrlReferrer返回空值
- 使用<a href>跳转,Request.UrlReferrer正常取值
https://blog.csdn.net/zhangzhentao/article/details/999029;window.showModalDialog()问题;
Fiddler
抓包工具,web代理服务器形式
- 截获、重发、编辑、转存(查看不同终端上送的UserAgent信息)
- 流量检测
将 Wi-Fi设置代理为本地的 ip和 port,port同 fiddler设置一样的。
具体参见:Fiddler工具介绍;Fiddler抓包总结;Fiddler学习;
UserAgent
前面提及到 UserAgent,借此了解下
只读字符串,格式:navigator.userAgent = navigator.appCodeName/navigator.appVersion
身份验证,用于服务器识别客户端操作系统、浏览器版本等,UA字符串在每次浏览器HTTP请求时发送到服务器,传递APP的基础环境信息。
项目中遇到的一个UserAgent示例如下,当时的场景问题可参见:https://www.cnblogs.com/wjcx-sqh/p/9643047.html
MPBank/6.5.0 Android/8.0.0 AID/unNw0BpDFADZBxNmufXsIsSiuic= SID/aYIt8Og76a17J9SnAM2B1H5Vm2A= APPTag/1.0(N;1234)
"WeChat/7.0.0":APP版本
"Android/10.1":操作系统版本
"AID/3Cjzry0cxDdUGE5C5D2YjawFFcM=":APPID的映射值,只要不卸载APP不会发生变化
"SID/5u9IBC0FmjV1yn8L9HAdae+/EoA=":APP一次启动的SessionID,APP进程不退出不会再变化,重新启动会改变
"APPTag/1.0(N;1234)":APPTag用于特定业务标识,1.0表示该字段版本号,一般不变化;N表示当前APP风格为通用版,V表示为尊享版,具体页面根据N或V切换为相应风格;1234目前无意义
"WebView/WKWebView":iPhone客户端特有标识,表示当前使用的浏览器是WKWebView
不同客户端浏览器的UserAgent参数不尽相同,可参见:浏览器userAgent
探测UserAgent
- Fiddler抓包
- chrome://version/
- F12 --> network --> name -->Headers
其他工具
Paros
Web应用漏洞评估工具
- HTTP会话分析:拦截+修改
- 网络爬虫
- 漏洞扫描
A Java based HTTP/HTTPS proxy for assessing web application vulnerability.
具体参见官网,仅供参考。
Postman
参见:Postman | 果冻想;
IP攻击
场景
- 一段时间内ip连接数大于一定值则断开该ip所有连接,且拒绝ip一定时间内连接
- 一段时间内ip连接所发送的数据大于一定值则断开该ip所有连接,且拒绝ip一定时间内连接
IIS
查看日志
路径:C:\inetpub\logs\LogFiles\
至于是在哪个 W3SVC 文件夹下,通过 站点右键 - 管理网站 - 高级设置 - ID
IIS管道托管模式
分为经典模式和集成模式。
在集成模式中,HTTP模块和HTTP处理程序不再定义于 <system.web> 中,而是定义于 <system.webServer> 中。
基本问题解决
提示:无法访问此网站 localhost 拒绝了我们的连接请求。
可能原因:一般是默认网站状态没打开
解决:IIS-网站--Default Web site--重新启动
WebApi程序调用DB2问题
[HttpException (0x80004005):未能加载文件或程序集“IBM.Data.DB2”或它的某一个依赖项。试图加载格式不正确的程序。]
at System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12672788
at System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159
at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +12512141
原因分析:操作系统64位,但发布的程序引用了一些32位的ddl,出现了兼容性的问题
解决方案:IIS → 应用程序池 → 对应的程序池 → 高级设置 → 启用32位应用程序 :true
"ExceptionMessage": "SQL1159 Initialization error with DB2 .NET Data Provider,
reason code 10, tokens 0.0.0, 9.7.9, Process Owner: IIS APPPOOL\\WebApi"
错误原因:用户无访问DB2权限。解决方案:
- Step1:控制面板-管理工具-计算机管理-本地用户和组-组-IIS_IUSERS、DB2ADMNS、DB2USERS,在这三个组中分别添加应用程序池应用程序的名称
- Step2:以管理员权限重启IIS(注:重启应用程序池无用):以管理员权限打开cmd,执行iisreset命令
URL - Fiddler - IIS的更多相关文章
- 无法在web服务器上启动调试。打开的URL的IIS辅助进程当前没有运行。
调试时弹出:无法在web服务器上启动调试.打开的URL的IIS辅助进程当前没有运行.
- Url Rewrite IIS 配置
在configuration节点下 <system.webServer> <rewrite> <rules> <rule name="rD" ...
- IIS URL Rewrite – Installation and Use
IIS URL Rewrite – Installation and Use Posted by Nick LeFevre | Leave a reply IIS URL Rewrite Instal ...
- IIS URL Rewriting and ASP.NET Routing
IIS URL Rewriting and ASP.NET Routing With the release of the URL Rewrite Module for IIS and the inc ...
- 整合iis+tomcat
目的: 将 Tomcat与 IIS整合在一起,共用 80端口.让 iis可以解析 *.asp. *.aspx. *.jsp. servlet和 *.do文件: 第一步:准备工作. 在你的 Tomcat ...
- Url重写和伪静态
这里是URL重写的精华:http://msdn.microsoft.com/zh-cn/library/ms972974.aspx感觉写的非常棒. 其实URL重写操作起来也是挺简单的,只要你在前台写好 ...
- fix iis Running slow
为什么写这个文章.因为我现在再找一个站点的访问原因..方法还是老方法.. 1. 站点是否真的挂了 a. 基本上全挂.所有请求非常缓慢或超时. b.大多数请求慢,但最终还是执行了.有可能 队列再排队 怎 ...
- 使用wfastcgi在IIS上部署Python Flask应用
本文介绍了如何在Windows上部署Python Flask应用,相关环境如下: 操作系统:windows 7 Python:3.4 WFastCGI: 2.2 应用所用到的包版本如下: Flask= ...
- URL重写2.1.mis
概观 IIS URL重写2.1使Web管理员能够创建强大的规则来实现更容易让用户记住的网址,并使搜索引擎更容易找到.通过使用规则模板,重写映射,.NET提供程序和集成到IIS管理器中的其他功能,Web ...
随机推荐
- Web聊天室的实现
Tornado普通方式实现聊天室 普通的http方式连接的话,基本思路是前端页面通过JS重复连接后端服务器. 核心文件:app.py #!/usr/bin/env python # -*- codin ...
- sonarqube-jenkins-config
Sonar Config .Jenkinsfile config stage('SonarQube analysis') { steps { script { scannerHome = tool ' ...
- ADFS RelayState
https://blogs.technet.microsoft.com/askds/2012/09/27/ad-fs-2-0-relaystate/ 什么是RelayState,我为什么要关心?有两种 ...
- MediaElement 不能显示的问题
1.记得在窗体的 Load 事件里面调用 Player1.Play();方法,就可以在窗体加载后就直接播放视频 2.WPF MediaElement其实和Windows系统自带的播放器是一样的,因此W ...
- Docker storage driver(十四)
目录 一.storage driver 作用 1.Images and layers 2.Container and layers Copy-on-Write 3.Data volumes and t ...
- 如何使用 AWS Auto Scaling 按需动态增加和减少实例
目录 一.背景需求 二.配置步骤 2.1.创建 AMI 2.2.创建负载均衡目标组 2.3.创建 Classic Load Balancer 2.4.创建启动配置 2.5.创建 Auto Scalin ...
- python介绍,计算机组成。内存分布,进制,操作系统介绍
学习小方法 三个W一个Hwwwh:what(是什么) why(为什么) where(怎么用) how(如何用) 来思考知识点多练,多写,多敲代码增加熟练度与代码量 Python 是一门面向后台的编 ...
- Python----数据预处理代码实例
为方便收藏学习,转载自:https://www.jb51.net/article/158168.htm 本文实例为大家分享了Python数据预处理的具体代码,供大家参考,具体内容如下 1.导入标准库 ...
- Echarts 图表的本地配置
前言 Echarts是一个美观的可视化工具,但是很多朋友初次接触,不知道自己该怎么创建一个包含Echartst图表的本地HTML网页,本文将详细地介绍Echarts的使用流程. 使用流程步骤 共分为三 ...
- javascript判断碰撞检测
javascript判断碰撞检测 点与矩形的碰撞检测 <pre> /** * * @param x1 点 * @param y1 点 * @param x2 矩形view x * @par ...