设置 wap网站,百度客户电话,wordpress音乐插件怎么用,贵阳做网站开发的公司目录#xff1a; 9.1.Web开发的一些基本原则 9.2 原则一 9.2.1 C#代码是运行在服务器端的#xff0c;JS代码是运行在浏览器客户端的 9.2.2 在服务器端“弹出消息窗口” 9.2.3 案例说明#xff08;客户端与服务端互不影响#xff09; 9.3 原则二 9.4 原则三 9.4.1 客户端… 目录 9.1.Web开发的一些基本原则 9.2 原则一 9.2.1 C#代码是运行在服务器端的JS代码是运行在浏览器客户端的 9.2.2 在服务器端“弹出消息窗口” 9.2.3 案例说明客户端与服务端互不影响 9.3 原则二 9.4 原则三 9.4.1 客户端验证不能代替服务端验证 9.1.Web开发的一些基本原则 ● 最小权限原则。只允许用户做***而不是“不允许用户做***” ● 浏览器查看的是服务端代码的执行输出的文本除非服务器有漏洞否则浏览者无法查看服务端的aspx、cs代码目标另存为也 是保存的aspx的执行结果而看不到aspx的源代码。js、html是被输出到浏览器上执行的因此无法禁止浏览者查看js、html。 9.2 原则一 9.2.1 C#代码是运行在服务器端的JS代码是运行在浏览器客户端的 客户端确认.aspx form idform1 runatserverdivasp:Button IDButton1 runatserver OnClientClickreturn confirm(真的要删除吗?) Text删除 OnClickButton1_Click /br /asp:Label IDLabel1 runatserver TextLabel/asp:Label/div/form 写个button事件 protected void Button1_Click(object sender, EventArgs e) { Label1.Text 删除成功 DateTime.Now; } 在客户端生成 ● 能在浏览器端完成的事情就不要到服务端去做。 ● 客户端是不可信的。 9.2.2 在服务器端“弹出消息窗口” context.Response.Write(script typetext/javascriptalert(删除成功)/script);明白为什么即可。 并不是真的是在服务器端运行的只是生成了JavaScript代码到浏览器端浏览器会在解析文档的时候运行alert不推荐用这种写法读懂即可推荐用后面讲的RegisterClientStartupScript。只是渲染到浏览器端所以并不会得到对话框关闭服务端的代码才会执行下去在context.Response.Write(script typetext/javascriptalert(删除成功)/script)后设置断点 9.2.3 案例说明客户端与服务端互不影响 ● 案例1、在项目中添加对System.Windows.Forms的引用然后MessageBox.Show(Hello);用CassiniDev.exe启动测试程序让学生们远程测试。证明C#代码是运行在服务器端的。 ● 127.0.0.1是回环地址LoopBack就是表示通过回环地址访问本机哪怕是本机外网地址也访问不了。localhost就是127.0.0.1别名。是无法在外部访问。 ● 0.0.0.0 任意IPAny IP不用写死绑定的IP了通过任何一块网卡都可以访问网络程序。 ● 案例2、伟大的ASP.Net可以在访问者磁盘中创建木马文件 ● File.WriteAllText(c:/muma.exe, 木马(){葵花点穴手();降龙十八掌();熊猫烧香();}); ● 用CassiniDev.exe启动测试程序让学生们远程测试VS内置的服务器不能远程访问。exe生成到了服务器的磁盘中而不是访问者的磁盘中因为C#代码是运行在服务器中的而不是浏览器中的浏览器得到的只有返回的HTML内容。 ● 案例3、开两个页面分别访问点击自增1的界面互不影响。因为状态是保存在页面的ViewState中的。 9.3 原则二 ● 能在浏览器端完成的事情就不要到服务端去做。 ● 按钮隐藏一个控件就不要写服务端代码在客户端用JavaScript、dom来操作就可以。比如要操作数据库显然是在浏览器端做不到的这时候就要写服务端代码。校验用户名、密码这样的操作可以放到浏览器端用户名、密码是写死的技术上可以但是这样安全性太差因此必须放到服务器端。 9.4 原则3 • 客户端是不可信的。 • 客户端验证不能代替服务端验证 • 不要把敏感数据、算法写在客户端 • 不要把机密信息在html中隐藏的方式来保证安全 • 应该是在机密页面打开之前做权限校验而不是在一个页面中做校验如果正确就倒向机密页面不正确就不导向。 • 不要轻信用户提交上来的数据 9.4.1 客户端验证不能代替服务端验证 客户端校验.aspx form idform1 runatserver onsubmitif(parseInt(document.getElementById(TextBox1).value,10)100){alert(最多只能取款100元);return false;}divasp:TextBox IDTextBox1 runatserver/asp:TextBoxasp:Button IDButton1 runatserver TextButton OnClickButton1_Click /asp:Label IDLabel1 runatserver TextLabel/asp:Label/div/form 设置取款金额不能高于100元 • 客户端form idform1 runatserver οnsubmitif(parseInt(document.getElementById(TextBox1).value,10)100){alert(最多只能取款100元);return false;} • 服务器端Label1.Text 取款成功金额TextBox1.Text; • asp:Button来讲onclick是服务端事件OnClientClick是最终生成到客户端浏览器中的onclick代码。 • 如果禁用JavaScriptInternet选项→安全→自定义级别→脚本→活动脚本→禁用可以用“开发人员工具”那么客户端JavaScript校验就被禁用了就可以取款多于100元了。 • 在服务端也要进行数据校验代码见备注。 客户端校验.aspx.cs protected void Button1_Click(object sender, EventArgs e){if (Convert.ToInt32(TextBox1.Text) 100){this.Label1.Text 禁止取款大于100;}else{this.Label1.Text 取款成功 TextBox1.Text 元;}} 客户端校验是为了很好的客户端体验服务器端校验是最后一次把关防止恶意请求。后面要讲的ASP.Net Validation就是ASP.Net内置的数据校验技术会在客户端和服务器端同时校验 转载于:https://www.cnblogs.com/tangge/archive/2013/04/24/3041038.html