最近在看一本叫《asp.net安全性高级编程》,把一些感兴趣的东西写成笔记当到这里吧,今天这一篇主要是讲怎么防御注入攻击的。
script injection
1.验证内容
a.使用regularexpressionvalidator的正则表达式来限制用户输入
2.筛选用户输入
a.使用string.replace方法
这个方法在petshop3.0中就有使用,就是把一些危险的符号(比如<>[]等)替换成安全的。
3.编码输入内容
a.使用server.encode来编码有害字符,防止这些标记在客户端执行
sql injection
a.使用string.length来限制用户的输入长度
b.使用ado.net的command对象的参数集合
隐藏窗体字段
a.始终使用sessioin检查用户是否有一个有效的会话
b.不在hidden中保存任何敏感信息
c.想办法处理hidden中的字段被删除的情况
d.在客户端检查参数的长度和数据类型
e.在服务器端重新进行验证
URL篡改
a.URL变体
为防止URL篡改,编码URL是比较明智的做法。我们可以创建一个简单的编码方法,然后利用它来读取URL中的值,创建一个编码的字符串并回传这个编码的URL字符串,接收的时候在对其解码,然后使用。
防止信息泄露
a.控制错误信息。做好异常处理
b.禁用调试和跟踪

2004-10-26+ 用户输入的安全问题相关推荐

  1. 十四、猜码游戏: 每一轮里,程序随机生成两个数字,一个是码数,范围:0到5,一个是猜数,范围:码数到10。用户输入两个数字,也分为码数和猜数。 若这一轮程序的猜数等于两个码数之和,输出“电脑胜”,若

    import random a=int(input('请输入码数')) b=int(input('请输入猜数')) i=random.randint(0,6) j=random.randint(i,1 ...

  2. 编写python程序、利用循环输出_Python基础编程—用户输入和while循环

    温馨提示 如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我. 函数input()的工作原理 函数input()让程序暂停运行,等待用户输入一些文本.获取用户输入后,Python将其存储在一个 ...

  3. Java黑皮书课后题第3章:**3.15(游戏:彩票)修改程序清单3-8,产生三位整数的彩票。程序提示用户输入一个三位整数,然后依照规则判定用户是否赢得奖金

    **3.15(游戏:彩票)修改程序清单3-8,产生三位整数的彩票.程序提示用户输入一个三位整数,然后依照规则判定用户是否赢得奖金 题目 题目概述 破题 代码 题目 题目概述 **3.15(游戏:彩票) ...

  4. Java黑皮书课后题第4章:*4.10(猜测生日)改写程序清单4-3,提示用户输入字符Y代表“是”N代表“否”,代替之前输入1表示“是”,0表示“否

    *4.10(猜测生日)改写程序清单4-3,提示用户输入字符Y代表"是"N代表"否",代替之前输入1表示"是",0表示"否 题目 题 ...

  5. Java黑皮书课后题第3章:3.26(使用操作符 ||和^)编写一个程序,提示用户输入一个整数值,然后判断它能否被5和6整除、能否被5或6整除、以及能否被5或6整除但不能被同时整除

    3.26(使用操作符&& ||和^)编写一个程序,提示用户输入一个整数值,然后判断它能否被5和6整除.能否被5或6整除.以及能否被5或6整除但不能被同时整除 题目 题目概述 运行示例 ...

  6. Linux shell 学习笔记(10)— 处理用户输入(命令行读取参数、读取用户输入、超时处理)

    1. 命令行参数 向 shell 脚本传递数据的最基本方法是使用命令行参数.命令行参数允许在运行脚本时向命令行添加数据. $ ./addem 10 30 本例向脚本 addem 传递了两个命令行参数( ...

  7. Java黑皮书课后题第10章:*10.5(显示素数因子)编写一个程序,提示用户输入一个正整数,然后以降序显示它的所有最小因子

    *10.5(显示素数因子)编写一个程序,提示用户输入一个正整数,然后以降序显示它的所有最小因子 题目 程序 破题 代码 Test5.java Test5_StackOfIntegers.java 运行 ...

  8. Java黑皮书课后题第8章:*8.26(行排序)用下面的方法实现一个二维数组中的行排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵

    *8.26(行排序)用下面的方法实现一个二维数组中的行排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...

  9. Java黑皮书课后题第7章:*7.28(数学:组合)编写一个程序,提示用户输入10个整数,然后显示从这10个数中选出两个数的所有组合

    7.28(数学:组合) 题目 题目描述 破题 代码 运行示例 题目 题目描述 *7.28(数学:组合)编写一个程序,提示用户输入10个整数,然后显示从这10个数中选出两个数的所有组合 破题 声明一个长 ...

最新文章

  1. html滑块数值怎么显示,显示HTML5滑块值旁边的百分比
  2. 高文、张钹、杨强隔空论道:AI精度与隐私的博弈
  3. Java如何接收前端传来的多层嵌套的复杂json串
  4. 必须要GPT-3吗?不,BERT的MLM模型也能小样本学习
  5. mybatis学习(2):基本设置和核心配置
  6. 同步设备IO与异步设备IO
  7. 手把手教你使用python爬取网络图片并存入本地
  8. C# try-catch-finally 语句异常的类型
  9. python简明教程电子书下载_python简明教程中文pdf下载-Python入门级电子书完整免费版-东坡下载...
  10. 图书管理系统(Java实现,十个数据表,含源码、ER图,超详细报告解释,2020.7.11更新)...
  11. Python3,9行代码进行压缩和解压缩,从此告别压缩软件。
  12. 171-路飞12-课程页面和课程数据表构建
  13. turf.js字典——查询turf库的所有方法及用途
  14. Android客户端与PC服务器通过socket进行交互实例
  15. 简易的js获取星期几的两种方法
  16. java中bean的作用域有哪些_Spring中Bean的5种作用域scope详解
  17. Synchronized的前因后果
  18. 抖音短视频庞大的流量池,新手小白如何杀出一条血路
  19. 在线图片转gif怎么操作?试试这一招在线制作gif
  20. C# 中panel的mousewheel鼠标滚轮事件触发

热门文章

  1. 排序算法 Java实现
  2. Windows 文件服务器升级跨林迁移(二)
  3. 数通手稿留档——ISIS
  4. Unable to complete the scan for annotations for web application
  5. linux 由一个文件夹复制到另外一个文件夹
  6. JAVA swing初级教程(四)
  7. Putty 工具 保存配置的 小技巧
  8. Java, Mono, or C++?
  9. Windows下的DNS命令用法
  10. cifs------网络文件系统(1)