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 ...
随机推荐
- springboot下jar包方式运行Caused by: java.lang.ExceptionInInitializerError: null
idea调试过程中不会出现此问题,异常如下 org.springframework.beans.factory.BeanCreationException: Error creating bean w ...
- Delphi下Treeview控件基于节点编号的访问1
有时我们需要保存和重建treeview控件,本文提供一种方法,通过以树结构节点的编号访问树结构,该控件主要提供的方法如下: function GetGlobeNumCode(inNode:T ...
- Tesnsorflow命名空间与变量管理参数reuse
一.TensorFlow中变量管理reuse参数的使用 1.TensorFlow用于变量管理的函数主要有两个: (1)tf.get_variable:用于创建或获取变量的值 (2)tf.varia ...
- Ubuntu下配置LVS【h】
以后服务器只用CentOS和Ubuntu.下午用redhat装个lvs装了一下午都没搞好,TNND的.果断用Ubuntu,不到两个小时就搞定了. 原文参见: http://kamengwang.blo ...
- 移动架构之MVP框架
MVP是在开发中常用的框架,要了解其原理,先要从了解MVC开始,这里就对MVP框架做一个简单的介绍 MVC MVC为Model,View与Controllor的缩写 Model:业务逻辑和实体模型 V ...
- js中实现base64加密、解密
//base64加密 解密 /* //1.加密 var result = Base.encode('125中文'); //--> "MTI15Lit5paH" //2.解密 ...
- [转帖]1A2C多口充 紫米USB充电器65W桌面快充版评测
1A2C多口充 紫米USB充电器65W桌面快充版评测 2019年10月04日 07:48 1786 次阅读 稿源:充电头网 1 条评论 https://www.cnbeta.com/articles/ ...
- mysql常用操作及常见问题
常用操作 mysql备份: --整库备份 docker exec 容器ID mysqldump -uroot -p密码 --databases 库名 > 库名.sql --仅导出表和数据 mys ...
- Java语言资源国际化步骤
语言资源国际化步骤: 1. 定义资源文件(如:language),需要使用命令native2ascii命令进行转码:(native2ascii是jdk中的转码工具,在jdk的bin目录下) 2 ...
- Python 安装包时选择 python版本
安装了两个版本的python 其中一个版本为2.7 专门为python 2.7安装包使用的语句为 升级pip E:\Python27\python -m pip install --upgrade p ...