zoukankan      html  css  js  c++  java
  • WEB开发原则

    1.最小权限原则,只允许用户做****,而不是"不允许用户做****"
    2.浏览器查看的是服务端代码的执行输出的文本,除非服务器有漏洞,否则浏览者无法查看
    服务端的ASPX,CS代码,目标另存为也是保存ASPX的执行结果,而看不到ASPX的源代码,
    JS,HTML是被输出到浏览器上执行的,因此无法禁止浏览者查看JS,HTML
    3.C#代码是运行在服务器端的,JS代码是运行在浏览器客户端的
    4.能在浏览器端完成的事情,就不要到服务端去做
    5.客户端是不可信的
    6.能直接将生成的内容以流的形式输出给纵览器,就不要生成临时文件

    原则1:
    C#代码是运行在服务器端的,JS代码是运行在客户端
    按钮确认提交的实现(在button中的onclick中写)
    <input type="submit name="delete" value="删除" onclick="return confirm('确认删除?')"" />
    代码是运行在浏览器端的,和服务器端没有关系
    在服务器端"弹出消息窗口"
    Response.Write("<script type='text/javascript'>alert('删除成功!')</script>");
    并不是真的是在服务器端运行的,只是生成了JAVASCRIPT代码到浏览执行,不推荐用些方法,推荐
    用后面讲的RegisterClientStartupScript,只是渲染到浏览器端

    案例1:

    在项目中添加对System.Windows.Forms的引用,然后MessageBox.Show("Hello");
    经远程访问测试,C#代码是运行在服务器端的,Hello弹出在服务端
    127.0.0.1是加环地址(LOOPBACK),localhost就是127.0.0.1的别名,是无法在外部访问的
    0.0.0.0 任意IP,不用写死绑定的IP,可以用于任何IP都可能访问网络程序

    案例2:

    在ASP.NET中,可以在访问者磁盘中创建木马文件
    File.WriteAllText("c:/muma.exe","木马(){QQ木马();机器狗();灰鸽子();});
    有CassiniDev.exe启动测试,exe生成到了服务器的磁盘中,而不是访问者的磁盘中,因此C#
    代码是运行在服务器中的,而不是浏览器中

    案例3:

    两个学生分别访问点击自增1的界面,互不影响,因为不同用户的变量内容是隔离的

    原则2:
    能在浏览器端完成的事情,就不要到服务端去做
    按钮隐藏一个控件就不要写服务端代码,在客户端用JAVASCRIPT,DOM来操作就可以,
    比如要操作数据库,显然是在浏览器端做不到的,这时候就要写服务端代码,校验用户名,密码
    这样的操作可以放到浏览端(用户名,密码是写死的),技术上可以,但是这样安全性太差,因此
    必须放到服务器端

    原则3:
    客户端验证不能代替服务器端验证
    用客户端验证取款金额不能高于100元,如果客户端把 JAVASCRIPT 禁用了,验证将不生效
    客户端校验是为了很好的客户端体验,服务器端校验是最后一次把关,防止恶意请求
    后面讲的 Validation就是ASP.NET内置的数据校验技术,会在客户端和服务器端同时校验

    原则4:
    不要把机密信息隐藏在HTML中
    只有密码输对了才显示下载地址,如果在客户端判断,先将下载地址隐藏,对了对显示,用户
    可以查看源码得到,密码与下载地址
    应该在服务端控制密码不对则 Visible=False,服务端控件的
    HyperLink1.Visible = false 是根本不输出到客户端的
    应该是在机密页面打开之前做权限校验,而不是在一个页面中做校验,如果正确就导向

  • 相关阅读:
    解析空白符(空白,制表)分隔的字串
    关于select—页面中的ListBox的Javascript
    【函数】strcat源代码
    【SQL语法】系列08:利用Update更新表中数据
    【函数】fill和fill_n填充之区别
    【Xcode】编辑与调试
    【网站】在WAMP下安装wordpress
    【SQL语法】系列06:利用ORDER BY排序
    【SQL语法】系列07:利用insert into插入新行
    【Boost】系列03:内存管理之shared_ptr智能指针
  • 原文地址:https://www.cnblogs.com/xgao/p/4173975.html
Copyright © 2011-2022 走看看