适用于所有网站的 SQL 安全建议

晚上下班回家翻阅到某老师的一篇《有关sql注入》仔细品位,稍有自己的一点想法,就此写出来给大家分享。

那么,文章中老师已经说得很清楚了,类型的转换是非常重要的。其实替换、过滤不安全的字符并不是最好的办法,我的系统一贯保持能让大家输入的内容原本呈现的原则,但是我的网站基本上很少出现安全问题。我就和大家分享下我的做法,希望各位多多指导。

我只坚持一条规则:对所有提交进来的数据都进行数据转换。在获取客户端发送的所有类型的数据的同时对数据进行转换,我相信有特定类型的数据是比较容易转换的,而相对的字符串要麻烦一些。例如数字型和日期型的数据,我们在获取客户端数据时完全可以编写个专门获取这种类型数据的方法来进行处理。例如获取数字的方法可以是 RequestInt(string key),而日期型可以是 RequestDate(string key)

用 ASP.net 为例,举例以上两个方法(均为 POST 方式,GET 方式类似):

public int RequestInt(string key)
{
string val = HttpContext.Current.Request.Form[key];
int result = int.TryParse(val.ToString(), out result) ? result : 0;
return result;
}

在线检查并即时更新的思路

最后一个后台的主要功能就是在线检查并安装更新。之前就有这想法,不过一直到慧杰老师都搞定了自己都搞不定。

新版本里无论如何我也要弄出这个功能,所以前几天和好友 linKin 讨论了一下,都是用 C# 的人一起研究,心得也可以互相分享一下。唯一不同的则是他设计的是 WinForm 而已。

我一直不打算用压缩包更新的办法,一是我的压缩类库还没有研究透彻,这样的举动会给系统带来风险,二是由于看过一篇有关网络游戏在线更新的思路,觉得很好。所以在新版本里,我打算使用的是和 LinKin 同样的办法——文件更新方式。

CDBurnerXP,光盘刻录小工具

周末只有一天的休息时间,趁着这个休息时间在家装了下 Windows 7。其实一早自己就一直在盼着这个系统,虽然家庭版才三百多块,不过功能不够用。功能够用的旗舰版嘛,又太贵买不起。只有下盗版用了。唉~

啊呀啊呀!跑题了……其实我这里要介绍的不是 Windows 7,而是刻录 ISO 镜像文件到光盘的一个小软件。

其实说起刻录,大家免不了会想到 Nero,可是那东西对我来说太大了。我历来都比较喜欢小巧的非绿色软件(当然是绝对安全的无病毒软件,而且注意是“非”绿色,别看网上那么多绿色下载站,其实我是不大喜欢绿色软件来的)。这里就给大家推荐个小工具:CDBurnerXP

页面右下角的反馈控件脚本

工作需要,要把百度的联系插件给换成自己的,参照原本的实现模式自己写了个,这里放出给大家。主要由三部分构成:CSS脚本控件代码

 

 

昕蓝的条形图课题修改版

好友 Cinner 最近在研究个新课题,虽然不是太复杂,不过挺有意思。

思路大概就是做个条形图,原理是利用控件进行控制宽度来显示不一样的进程。详见:用CSS做条形图

今天正好有时间,也就研究一下这东西。当然我比较偏向于今后制作系统的可利用程度,所以就设计了个有脚本的 Demo 版,这里给个演示图和下载。

本地下载:【条形图演示压缩包】

博友们多多交流,有新课题也要记得告诉我哦~呵呵。

网页重构,怎样才能快捷有效?

网页重构这个词已经被人们成熟地使用很多年了。可是现在依然发现,有这样那样的问题需要讨论和解决。至于我个人,目前在布局 Roclog v5 的默认模板时,会着重以下几点。

大型页面的脚本在需要的时候才调用:也许 W3C 的建议是把脚本、样式表等文件包含在 <head></head> 标签内部。这样对于小页面基本上没什么问题,不过如果是脚本运用很多的大型网站,几乎没有太多的时间来注意这些细节,而直接把脚本包括到头部标签里,可能会大大拖慢网页的的执行速度。虽然可以通过 AJAX 或其它优化技术来搞定这些问题,不过我自己的做法是,在重构大型网站页面的时候,在第一次使用需用到的脚本时才调入脚本,这样做快捷有效。

合理使用 class 和 id 进行布局:大家都知道,class 是可以用在多处的,而 id 是唯一的。但多个 id 也不会给布局带来麻烦,而且 class 和 id 都可以用于布局。不过我这里想和大家分享的是,尽量少地使用 id 来定义页面布局。有的脚本操作要用到 id 来寻找唯一的操作对象(jQuery 框架的选择机制除外),运用太多同样的 id 难免会给脚本编写带来麻烦。之所以,建议使用 class 来定义页面布局,id 来定义可操作的 DOM 名称。

CKeditor 编辑器推荐

有可能我已经落伍了,今天才看到有个编辑软件叫 CKeditor。这是 FCKeditor 的原型,不知道是合并还是改版,连名字都改没了一个字~呵呵。

玩笑就到此为止。好久没有更新博客了,总觉得有点对不住大家。其一的原因我就不说了,大家都知道了的,我自己也很郁闷。然后就是也有些忙,前不久一直在设计 Roclog v5 的架构。现在在制作后台。基本操作方面的速度和效率、易用度已经基本上没问题了。在开始更新编辑器的时候发现了个叫 CKeditor 的东西。

这是官方演示的截图:IE 和 Firefox 的唯一区别就是编辑器在 IE 下没有圆角,而 Firefox 下有圆角,显得比较圆润一些而已。

UTF-8 的 ASP 中文 Server.HTMLEncode 问题

今天在给公司的合作商做网站的时候要用到 UTF-8 编码的 ASP 程序,刚开始一切正常,后来打开数据库发现提交进去的数据全部都是已编码的数据。

用 ASP 写程序的时候我有个习惯,把所有的字符串文本给处理一下再进行操作。那么,这个处理我是先用 Server.HTMLEncode 把文本格式化,然后再替换掉单引号来操作的。可是用到 UTF-8 编码的时候,对于中文就不是那么好使了。

UTF-8 编码的 Server.HTMLEncode 会对中文进行编码处理(ANSI 的是忽略中文的)。这虽然没什么大问题,不过我个人是觉得很别扭。那么,怎么样才能让 UTF-8 编码的 ASP 文件提交进数据库的字符是明文呢?不是没有办法。首先,自己制作 HTMLEncode 函数,千万不要用系统的 Server.HTMLEncode 函数了,除非用于显示。然后,在每个 UTF-8 页面程序上加上以下语句:

  1. <%@ CodePage = 65001 %>   
  2. <%   
  3. Session.CodePage = 65001 
  4. Response.Charset = "UTF-8" 
  5. %> 

1/12, 91«1234»

Powered by Roclog v5.0.24.0

Copyright © 2009-2010 Roclog 官方网站. All rights reserved.

滇ICP备09002287号

本站带宽资源由风云互联提供, 统计由提供