web开发的一些基本原则

一、最小权限原则

  只允许用户做***操作,而不是不允许用户做***操作。

  用户看到的是服务器端执行输出的结果,用户不可能看到aspx、aspx.cs源文件,目标另存为也是保存的服务器端执行后的结果。js、html是被输出到浏览器上的,用户有办法看到。

二、C#代码运行在服务器端,js代码运行在客户端。

  可以在空间的OnClientClick中编写客户端代码(js):return confirm(‘真的要删除吗?’)

  服务器端编写context.Response.Write("<srcipt ty[pe='text/javascript> alert(' 删除成功')</script>'");

会看到页面加载时弹出消息框,查看源文件可以看到上面的代码在html源文件的最上端,即浏览器先解析上面的js程序,在继续向下解析。

不能用这种方法来询问客户是否继续操作,因为这种方法阻塞的是客户端的解析和运行,不会对服务器端产生影响。

  服务器端添加Windows.Forms的引用,然后调用MessageBox。show();方法企图显示消息框式错误的,因为这个程序会运行在服务器端,而不是客户端,用户出发时消息框在服务器端弹出。

三、能在浏览器做的事就不要再服务器端做。如做一个加法运算,隐藏一个控件等。

四、客户端是不可信的

  客户端验证不能代替服务器端验证。客户端验证时为了方便用户使用,服务器端验证时为了确保数据合法。有些人可以越过浏览器直接和服务器通信,或禁用js等,如果省略服务器端的验证会不安全。

   不要把机密的数据算法等放到客户端。如输入密码后才可下载功能。如果仅是在html中把下载地址隐藏了,那用户一定可以看到。这样是不安全的,可以用Hyperlinker控件。让他的visible属性为false,只有用户输入正确密码后把visible为TRUE,为FALSE是在客户端html中式看不到这个控件的,只有提交返回后才把这个控件渲染回来。

  应该是在机密页面打开之前做权限校验,而不是在一个页面中做校验,如果正确就倒向机密页面,不正确就不导向。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值