摘要:XSS漏洞即跨站脚本(cross-site script)它的原理是当用户发布信息时,会利用js等脚本样的语句提交给服务端,主要是用到表单的get方法,把自己的js语句经url相关编码转换后提交给服务器并把此完整的url发给其它人,其它人在打开此url连接时就会弹出相关信息或重定位于其它服务器上,恶意的连接会让提示用户输入相关的帐户和密码并把用户的相关信息盗走。现在高级的浏览器上都已增加了XSS功能控制,把js或html的特殊符号,如<,\等转变为<等普通字符 ,这样在浏览器显示时就不会进行解析成其它的东西。在asp.net的页面中可以增加ValidateRequest=Tr
阅读全文
摘要:我们在写html时,会让一个元素不呈现在网页上,我们可以用style="displayed='none'"来控制,但在网页的查看源码下就可以看到这个没呈现出来的元素信息,如一个下载地址,虽然在网页浏览时看不到,但可以在源码中查看并可以下载。 在Asp.net中我们把服务端的控件设置为visible=false的话,在客户端是不会呈现出此元素信息的,因为服务器不会把隐藏的元素渲染到浏览器的。
阅读全文
摘要:我们会在客户端进行必要的验证,不仅增加数据的准确性也减少了数据流量,但客户端的验证可靠吗?我们做个网页,在网页中放一个textbox和button,当用户点击button时,我们判断textbox 中我拉输入的值的大小,大于100则不给出提示,小于等于100则提示正常。在asp.net中,button有个onclientclick属性(不是事件),它响应的操作是在客户端进行的,它另有个onclick事件是在服务端完成的,以下为它的关键源代码: <asp:Button ID="Button4" runat="server" onclick="
阅读全文
摘要:我们在开发程序时一般用到本机的ip时我们会使用localhost或127.0.0.1.在asp.net 开发中VS已给我们集成了一个小型的服务器,但它只能运行于本机上,它默认用localhost:端口。127.0.0.1(localhost): 又叫Loopback,即回环地址,在我们调试程序时,数据是不经过网卡的,即是没有安装网卡也可以调试,它中有本机才能用,你就是改成它的 IP也不行。0.0.0.0: 又叫Any IP,即任意IP. 可能一台机器上会装有多个网卡,一个连接外网,一个内网,一个是安全方面的通讯网卡,因此此机上会有多个IP地址,每个网卡访问的资源不一样,把程序绑定到0.0.0.
阅读全文
摘要:断点续传及多线程下载原理: 即用段的类型,如发送命令 get a.zip http/1.1 length 1M-2M,这样就只把a.zip中每1M-2M这段的数据请求下载下来,即每次把长度分段,到下载完整后再整合到一起即可,当然这要由服务器支持才行。
阅读全文
摘要:我们用分析工具时可以看到浏览器给服务端发送的一些格式数据,也可以看到服务端返回的格式数据请求的报文:POST 提交的服务端网页 HTTP/1.1 (有get和post两种方法,最后为http协议)Accept: text/html, application/xhtml+xml, */* (数据格式)Referer: http://localhost:10209/楠岃瘉鐮佸師鐞?ClientVerification.aspx (参考路径或服务端网页)Accept-Language: zh-CN (语言)User-Agent: Mozilla/5.0 (compatible; MSIE 10.0;
阅读全文
摘要:http有三个版本,分别为http/0.9,http/1.0,http/1.1,目前大多数用的协议为1.1t版本。http协议的一些概念: connection:浏览器和服务器之间的通道。 此通道请求完毕后就关毕,不会保持长连接。 Request : 请求。 浏览器向服务器发送的请求,包含请求的类型、数据、浏览器信息(语言、版本等)等 Respone :响应。 服务器对浏览器请求的返回数据,包含是否成功,错误码等。在开发网页时有以下几个常用的http分析工具: debugBar :它是一个免费的http分析工具,安装在IE上后,你提交一下数据,点击此工具图标,在它的http(s)中就可以看到当
阅读全文
摘要:为防止暴力操作,现在很多网站都会用图片验证码来防止这样的操作。图片验证码的原理是: 服务器处理程序产生随机数字并把这些数字绘制于图片中,同时把数字保存于session中,客户端根据显示的图片信息把验证码输入到编辑框中并提交到服务端,服务端根据编辑框中的数据和session的值进行比较即可。1.建立一般处理程序<%@ WebHandler Language="C#" Class="HandlerVerification" %>using System;using System.Web;using System.Drawing;using Sys
阅读全文
摘要:暴力破解原理:其实就是根据服务端一定的规律并让程序利用循环的方法计算得到一定值和服务的值进行比对,下以为实例:我们做个登录的网页,例如已知道登录账号但不知密码,程序利用一定的算法来进行密码计算并试图登录即可。就是用到了表单的get方法。1.网页端源码及图片:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %><!DOCTYPE html PUBLIC "-//W
阅读全文
摘要:有的隐私信息或不能让客户端随便改动的信息放在服务端即可,这时我们就用到session这人名词。以下的例子是我们在客户端写个值保存于服务器上,服务器读取其值对显示在服务端:为了实现上述的情况,我们建立一个类,让cookie传递一个id值给服务端,服务端再把得到的返回到客户端:1。服务端的类using System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>///SessionMgr 的摘要说明/// </summary>public class Sess
阅读全文
摘要:Cookie是记录客户端的一些信息,是用户要求记录的。但它是和服务端相连的,向服务器请求的时候除了发送表单参数外还会把与站点相关的所有Cookie提交给服务器,这是强制性的,服务器会把修改后的cookie值返回给浏览器并更新本地的cookie。cookie也是键/值对,以下为读写的操作。在asp.net 中设置cookie的操作为(写): Response.SetCookie(new HttpCookie(key,value));读的操作为:Request.Cookies[key].Value;即写的操作是由响应操作的,即Response,读的操作是浏览器请求得到的,即Request.cook
阅读全文
摘要:在以上的章节中说明过,只有表单域中有Name的属性元素值才能被传输到服务端。如果我们想在div中显示一个值进行递增(不要放服务端控件),而div又没有name属性,哪它如何显示自增呢?(纯粹用html元素)我们可以这样处理一下: 1.在客户端中我们放一个hidden元素,由于它有name值,故可以传递它的name及value到服务端,我们可以把它的value值设置为@value(自行设计),在div中也用@value显示,即<div> @value</div>,让客户端表单处理的页面指向服务端,当服务端得到hidden的值后并加1再把整个客户端页面中的@value替换为
阅读全文
摘要:我们在提交表单时有两种方式,一样get,二为post. 它们都是把相关的数据提交给服务端。即设置表单method为get或post即可。它们的区别为: 1. get是通过URL传递表单值,它传递的值是可以让用户看到的。post是隐藏到head的报文中的,用户看不到。 2.get传递的数据量是有限的,如果要传递大数据量就不能用get,比如type为file,textarea或敏感信息password等,post则没有这个限制 3.post在提交数据时,会有浏览器提示“重新提交表单”的问题,get则没有。get提交数据的方式为:服务端文件名后跟着?,由于客户端可能向服务器端提交多个键值对,每个键值
阅读全文
摘要:当我们直接从服务端读取网页时,表时此网页并没有post(提交),当用户再次提交表单时,就会把此网页的相关参数传给服务器处理,对于服务器来说就是一个postback(提交返回),即提交回来了。这就是postback.在网页开发时这个很重要,用户第一次加载时就不是postback,当用户把相同的网页提交给服务端时就是postback.我们建立如下测试程序,先建一个模板,即一个带form的表单,它里面放上一个textbox和一个submit按钮。当点击按钮时会把textbox的值传给服务端的程序来处理,服务端根据是第一次加载还是再次提交返回给用户,当然服务端会把此模板返回回来。注意模块是不直显示的,
阅读全文
摘要:我们在用高级语言建立动态网页时,是放在服务器上运行,然后会在客户端请求时显示于客户端,当客户端提交后会提交到服务器,然后服务器会把相关结果传给客户端。就如同在银行开户时一样,你先写个请求表单,把表单交给工作人员后进行处理,处理完成后工作人员给你反馈结果,网站的原理也是如此。本例中我们探询网站的原理: 1.建立一个表单,为登录使用。放上一textbox,及sumbit。sumbit用于提交表单。我们建立的是htm页面。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w
阅读全文
摘要:我们在VS2010中新建网站时,点击菜单:文件->新建时,下面有项目和网站两个选择,新建时的默认名字为WebApplication和WebSite的名称。它们的区别为: WebApplication 在改变代码后必须要重启网页才能看到效果,它有namespace空间名称,在编译后会形成一个dll。也可以在改变代码后点击“生成”菜单的“生成解决方案”后也能立即看到效果。不需要重启浏览器。它是在生成后才会将变化的部分生成dll.Website在改变代码后不用重启网页,它没用到namespace空间名,主要是方便从asp转过来的使用者。每个asp页面会转成一个dll.即多个dll. websi
阅读全文