asp.net 网站安全解决方案
1、sql注入漏洞。
解决办法:使用存储过程,参数不要用字符串拼接。简单改进办法:使用SqlHelper和OledbHelper
2、跨站脚本漏洞
解决办法:“默认禁止,显式允许”的策略。具体参考:从客户端检测到有潜在危险的Request.Form值,禁止提交html标记(<>等被转义成<)
3、上传漏洞
解决办法:禁止上传目录的运行权限。只给读取权限。另外要禁止上传非法类型文件。不仅仅是aspx类型,包括很多,甚至htm、html类型文件也不应该直接上传保存。
4、数据库连接帐号,尽量使用最低权限的帐号。一定不要给管理员权限。
假如被黑客得知了数据库的密码。
那我们就可以执行任意系统命令了。
例如:xp_cmdshell 'dir c:\'
另外还有
tasklist
taskkill
pslist
pskill
net user
net user guest /active:yes
net user hack hack /add
net user hack /del
net localgruop administrators hack /add
query user
logoff 1
这些命令是不是很恐怖?呵呵。所以一定不要给web数据库连接帐号管理权限。
5、用户登录。这里不要把用户标识明文存储在cookie里,以用来标识用户是否登录。因为cookie是可以被修改的。请看这里的修改cookie,冒充其他用户。nc httpwatch使用视频教程,用微软的Forms窗体身份验证和角色一般情况都够用了。
6、如果网站程序中用到读写文件,一定要慎重,因为读取的操作很可能被黑客利用,例如用一个查看图片的aspx文件读取web.config,用一个生产模板的功能生成木马。
7、充分利用验证码。用户登录、评论等等可能会被提交垃圾信息的地方,都要使用验证码,而且要有一个安全的验证码。才能防止被暴力破解,防止网站充满垃圾数据。
8、代码要严谨,修改用户资料、修改用户数据都要跟用户关联起来,比如upd
相关文档:
string[] files = Directory.GetDirectories(Server.MapPath("Themes/"));
先声明了一个字符数组,mapPath方法得到的是一个绝对路径。
因为GetFiles返回的是一个string[]数组,所以用 files来接收它。
然后我们在用一个foreach循环来遍历这个数组,取出所有值。
foreach (string file in files)
{
Response.W ......
public static string TheColor(string color,string enumName)
{
return string.Format("<span style=\"color={0}\">{1}</span>",color,enumName);
  ......
今天在实现如题内容时,始终出现了一些问题,在论坛留言,回复者甚多,但也良莠不齐,遂在痛苦煎熬的整理后,生出此文
本文仅为一种GridView+CheckBox实现全选/反选/删除的方法,仅供大家参考,欢迎大家提出自己宝贵意见
demo.aspx页面
<!-- 略-->
<asp:GridView id="GvContent" runat="server" &g ......