您的位置:首页 > 其它

最近小项目总结 2013.5.3

2013-05-03 09:01 239 查看
距离上次更新随笔已经快1个月了,要不是有这个项目,估计很难又会拾起这些以前很熟悉,现在却很非常生疏的东西。

从4.22左右到5.2 终于完工了, 闲暇时间做的,总体还可以。

功能也就是增,删,改,展示并打包下载的。

项目内容:

A公司是某行业权威部门,是系统内的出版机构。 部分企业向A公司缴纳费用后,就可以上传自己的企业信息和产品信息,然后A公司的编辑部门就会根据这些信息来设计宣传广告

*生成key后,发放给已经缴费的企业

*企业根据key,一次性填写企业信息和产品信息(产品最多填写6个)

1.首先根据要求的字段创建了相关的数据库表

3个表: key 表;company表;product表

2. 开始分析如何设计web应用程序

因A公司给的需求,要求最好在同1页面中收集到所有信息;但是这样的话,在同一个页面要判断好多post过来的参数,公司信息参数20个,单个产品信息10个,最多60产品参数。

故摒弃了这种做法,用3个页面来实现系统。 addkey.aspx 用于验证key是否有效;addCompany用来判断company是否有效;addProduct用来添加product信息(一次添加一个,添加完可以在本页面展示本企业已经上传的列表)

3.确定好页面逻辑就开始动手建立项目

下载动软生成器; 根据数据库生成项目。 生成的项目内 有 Bll,Dll,Common,DbUtitly,Web 5个子项目。

web项目中有 PageValidate.cs 此页面有正则可以用来判断post或者get过来的参数是否合法化

Bll 一般逻辑处理项目 用于和Dll 交流数据;假设获取某表最大的Id,则Bll 中有个 Exist(int id){ Return Dll.Exist(ID);},Dll中有个和Bll中同名的Exist 用来访问数据 库获取信息。

DbUtitly 是处理sql的最基本语句,Dll中调用DbUtitly中的成员访问数据库。 一般情况下不单独使用DbUtitly

Web项目中 根据表的字段 生成了若干页面 例:company表,就生成了add.aspx,show.aspx,delete.aspx,showlist.aspx

common项目中有一些功能; 比如:发送邮件,弹出对话框;生成excel 等功能。

根据这个项目又重新熟悉了一些内容如下

IIS7配置和IIS6配置(win2003 用的IIS6),主机头配置,二级域名配置(要求网络提供商那要解析);注意集成方式和经典方式;注意应用程序池的启动 和一些 具体参数,回收和停止应用程序池。

上传图片时候要给与文件夹写入权限,否则提示无访问权限。

文件夹判断存在否,建立文件夹;文件是否存在,创建文件,删除文件;

如果没用server 控件,则 同一页面要上传多个图片, 用Form表单 Mulitpart 上传,不限制上传数据大小; 普通postdata 限制post数据大小

根据第三方dll,来压缩整个项目文件夹,生成压缩包*.zip ; 附上实例:下载地址

根据动软生成器生成的common类 来生成Excel *.xls

提供下载压缩包。

key要求唯一,则通过GUID,根据机器码,时间,操作系统参数等等好多参数生成 ,目测几千年才会出现一次相同。 sql: NewId();

connectString加密。 web.config 可以 用动软生成器的加密工具,对明文数据库连接字符串进行加密。

sql注入问题;

假设:a.aspx?id=1 则如果是拼接sql,数据库则执行 select * from X Where id='1'

如果用户输入的是, 1' or 1=1;drop database xx;--,则数据库执行 select * from x where id='1' or 1=1;drop database xx;

则xx数据库会被删除掉。

解决办法: 通过ADO.net提供的 SqlParm 来生成参数

sql="select * from product where id=@id";

sqlParm a=new sqlparm("@id",id);

然后执行数据库,这样就可以判断是否有注入,如果有注入则自动提交失败。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: