• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程技巧 > 程序开发中的几个请不要相信

程序开发中的几个请不要相信

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-12

通过本文主要向大家介绍了程序开发中的几个请不要相信等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
链接中的例子是一些脚本攻击相关的内容,有时间的朋友可以点开看看。

1.不要相信Request.QueryString:

相信在asp时代,这个问题比较严重,不信,随便到网络上找几个asp的企业站,找到这种url"view.asp?id=xxx",改成"view.asp?id=xxx or 1=1",相信你会看到不一样的东西,到了.net,应该很少了,不过上次看到有人说CSDN爆过哦,简单的解决方法是在取得数据时做数据类型验证或转换。比如:
int ViewID = 0;
if(int.TryParse(Request.QueryString["ID"], out ViewID)){
//...
}
2.不要相信maxlength:
 有时候我们想客户端输入的某个值不超过一定的长度,这个时候可能就会用到input的maxlength,但maxlength能100%保证这个值的长度不超过maxlength吗?
忽略Maxlength 正常情况下你只能在上面的输入框中输入4个字符,但用户post给我们的数据是不是一定就<=4个字符呢?把下面的代码复制到地址栏Enter一下看;
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]</div>
显然,maxlength是不可信的,简单的解决办法是后台代码验证数据长度:
string UserName = Request.QueryString["UserName"];
if(!string.IsNullOrEmpty(UserName)&&UserName.length > x){
//...提示错误或截断数据
}
3.不要相信Hidden:
有时候我们想把些信息保存到前台页面,然后再发送回来,但是我们又不想让客户看到这个信息,于是,我们把数据放到了hidden里面,那客户提交数据时,hidden里的内容真的是我们放的内容吗?
改变Hidden的值 用户名: 请先点击"查看Hidden"查看原来的值.正常情况,客户端提交给你的Type的值应该是"Robot!",但是你把下面的代码复制到地址栏然后Enter一下,再点查看Hidden看看;
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]</div>
这个我一时也没想到好的验证方法,暂时也没有特殊的需求说必须验证。
4.不要相信客户端验证:

比如2和3中的问题,可能有的朋友觉得,我客户端再加个验证不就OK了吗?可是,往往,客户端验证也是不安全的,首先,如果客户端禁用脚本,那客户端验证是完全失效的,另外,在脚本有效的情况下,脚本验证也是可以被篡改的。
覆盖Submit验证
正常情况,点提交按钮会验证用户名不能为空,并弹出提示,但是你把下面的代码复制到地址栏然后Enter一下,再点提交看看;
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]</div>
以前QQ空间里可以通过这个方法免费使用黄钻模板,不知道现在还有没有。这个就没有什么好的解决办法,只能后台再验证一次。
5.不要相信编辑器:

有的时候,可能项目中要用到一些简单的编辑器,于是,我们就找到了一些编辑器,把不需要的功能(比如:编辑源码、插入图片等)剔除掉,就成了个简单的编辑器,那这样的编辑器还会有什么问题吗?
无标题文档 真正的编辑器应该会有些加粗、倾斜什么的功能,我就不弄了,以最原始的iframe为例。 这个简单的编辑器没有查看源码的功能,那客户是不是真的就改变不了里面的内容了? 请将下面的代码复制到地址栏然后Enter;
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]</div>
暂时也没有什么好的解决办法,以前找到过过滤script标签的代码,但似乎不太完美。
6.不要相信Cookie:
网站中不可避免的会使用到Cookie,但如果一不注意,小心你的Cookie成了别人的"Cookie",
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-12IE Cookie文件格式说明
  • 2017-05-12有效的提高编程技能的12个方法
  • 2017-05-12json显示日期带T问题的解决方法
  • 2017-11-21web 执行 mina staging deploy 发布项目到测试环境出现 mina aborted!
  • 2017-05-12分享18个最佳代码编辑器/IDE开发工具
  • 2017-05-12网站登录持久化Cookie方案
  • 2017-05-12字符编码详解及由来(UNICODE,UTF-8,GBK) 比较详细
  • 2017-05-12献给写作者的 Markdown 新手指南
  • 2017-05-12各种语言、服务器301跳转代码全集
  • 2017-05-12全民学编程之 Hello World

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C/S和B/S两种架构的概念、区别和联系
    • xmlHttp ie6下不跨域还提示没有权限,ie8下不会有这错误
    • 玩转markdown 分享几个需要用到的工具
    • 获取键盘键的值 集合 方便监控键盘事件
    • 2013年CIO需要知道的八句格言
    • 获取目录下所有文件名的代码
    • 分享下GET和POST的真正区别
    • 解释执行和编译执行的区别?
    • FFmpeg基本介绍
    • php和js编程中的延迟执行效果的代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有