2004-10-26+ 用户输入的安全问题
最近在看一本叫《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+ 用户输入的安全问题相关推荐
- 十四、猜码游戏: 每一轮里,程序随机生成两个数字,一个是码数,范围:0到5,一个是猜数,范围:码数到10。用户输入两个数字,也分为码数和猜数。 若这一轮程序的猜数等于两个码数之和,输出“电脑胜”,若
import random a=int(input('请输入码数')) b=int(input('请输入猜数')) i=random.randint(0,6) j=random.randint(i,1 ...
- 编写python程序、利用循环输出_Python基础编程—用户输入和while循环
温馨提示 如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我. 函数input()的工作原理 函数input()让程序暂停运行,等待用户输入一些文本.获取用户输入后,Python将其存储在一个 ...
- Java黑皮书课后题第3章:**3.15(游戏:彩票)修改程序清单3-8,产生三位整数的彩票。程序提示用户输入一个三位整数,然后依照规则判定用户是否赢得奖金
**3.15(游戏:彩票)修改程序清单3-8,产生三位整数的彩票.程序提示用户输入一个三位整数,然后依照规则判定用户是否赢得奖金 题目 题目概述 破题 代码 题目 题目概述 **3.15(游戏:彩票) ...
- Java黑皮书课后题第4章:*4.10(猜测生日)改写程序清单4-3,提示用户输入字符Y代表“是”N代表“否”,代替之前输入1表示“是”,0表示“否
*4.10(猜测生日)改写程序清单4-3,提示用户输入字符Y代表"是"N代表"否",代替之前输入1表示"是",0表示"否 题目 题 ...
- Java黑皮书课后题第3章:3.26(使用操作符 ||和^)编写一个程序,提示用户输入一个整数值,然后判断它能否被5和6整除、能否被5或6整除、以及能否被5或6整除但不能被同时整除
3.26(使用操作符&& ||和^)编写一个程序,提示用户输入一个整数值,然后判断它能否被5和6整除.能否被5或6整除.以及能否被5或6整除但不能被同时整除 题目 题目概述 运行示例 ...
- Linux shell 学习笔记(10)— 处理用户输入(命令行读取参数、读取用户输入、超时处理)
1. 命令行参数 向 shell 脚本传递数据的最基本方法是使用命令行参数.命令行参数允许在运行脚本时向命令行添加数据. $ ./addem 10 30 本例向脚本 addem 传递了两个命令行参数( ...
- Java黑皮书课后题第10章:*10.5(显示素数因子)编写一个程序,提示用户输入一个正整数,然后以降序显示它的所有最小因子
*10.5(显示素数因子)编写一个程序,提示用户输入一个正整数,然后以降序显示它的所有最小因子 题目 程序 破题 代码 Test5.java Test5_StackOfIntegers.java 运行 ...
- Java黑皮书课后题第8章:*8.26(行排序)用下面的方法实现一个二维数组中的行排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵
*8.26(行排序)用下面的方法实现一个二维数组中的行排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...
- Java黑皮书课后题第7章:*7.28(数学:组合)编写一个程序,提示用户输入10个整数,然后显示从这10个数中选出两个数的所有组合
7.28(数学:组合) 题目 题目描述 破题 代码 运行示例 题目 题目描述 *7.28(数学:组合)编写一个程序,提示用户输入10个整数,然后显示从这10个数中选出两个数的所有组合 破题 声明一个长 ...
最新文章
- html滑块数值怎么显示,显示HTML5滑块值旁边的百分比
- 高文、张钹、杨强隔空论道:AI精度与隐私的博弈
- Java如何接收前端传来的多层嵌套的复杂json串
- 必须要GPT-3吗?不,BERT的MLM模型也能小样本学习
- mybatis学习(2):基本设置和核心配置
- 同步设备IO与异步设备IO
- 手把手教你使用python爬取网络图片并存入本地
- C# try-catch-finally 语句异常的类型
- python简明教程电子书下载_python简明教程中文pdf下载-Python入门级电子书完整免费版-东坡下载...
- 图书管理系统(Java实现,十个数据表,含源码、ER图,超详细报告解释,2020.7.11更新)...
- Python3,9行代码进行压缩和解压缩,从此告别压缩软件。
- 171-路飞12-课程页面和课程数据表构建
- turf.js字典——查询turf库的所有方法及用途
- Android客户端与PC服务器通过socket进行交互实例
- 简易的js获取星期几的两种方法
- java中bean的作用域有哪些_Spring中Bean的5种作用域scope详解
- Synchronized的前因后果
- 抖音短视频庞大的流量池,新手小白如何杀出一条血路
- 在线图片转gif怎么操作?试试这一招在线制作gif
- C# 中panel的mousewheel鼠标滚轮事件触发