木子屋 Dnawo's BLOG

分类:Web编程

共 939 篇

防止网站数据库被下载

对于站长来说,网站的核心就是数据库,如果被人下载到了,那这个网站也就岌岌可危了!对于数据库的防下载处理,通常是把数据库的格式由"MDB"改为"ASP",并在其中加入一个防下载的字段。 首先用Access打开MDB数据库,切换"对象"中的"表"为"查询",然后双击"在设计图中创建查询",在弹出的"显示表"窗口中,不添加任何表,直接点"关闭",这样在"工具栏"中就多了个"SQL"按钮,点击这个按钮或者在"查询"窗口中按鼠标右键,选择其中的"SQL视图",就会打开查询窗口,其实这个窗口就是Acces的SQL命令输入窗口。 接下来就可以创建防下载字段了,可以分两步进行: 第一步:先创建一个表,在SQL命令窗口输入以下内容:"Create Table ( olebject)",然后点击工具栏中的"!(运行)",这样,就会在当前数据库内创建一个nodown的表,其中的字段名称为"jmdcw",字段类型为"OLE对象"。…

防SQL注入不能滥杀无辜

我们先来看看新云网站管理系统 v3.1.0.1231的防SQL注入函数: 使用这段函数只要参数中包含"insert|select|delete|update"等字符就被认为是在注入,那么偏偏有时候我要搜索的就是"update"呢?对不起,不行!显然这已造成了使用上的不便。 再来看看FoosunCMS V4.0 Sp5 For ASP的防SQL注入函数: 和新云一样也是存在过滤过严的问题! 下边我们再看看PowerEasy® SiteWeaver™ CMS 6.5 Build 0128的防SQL注入函数: 看来动易程序员已经考虑到了滥杀的可能性,所以只有当"select|update|insert|delete"等字符前含有空格可才会被认为是在注入!不过个人认为注入时空格恐怕都应该在这些字符之后更多些吧?regEx.Pattern的值改为:…

使用MSSQL作业定时执行任务

使用MSSQL作业我们可以定时执行一些任务,比如数据库备份、更新记录等等。下边我们来定制一个任务:每隔一分钟往data数据库的table1表中插入一条记录。 1.依次展开"服务器→管理→SQL Server 代理→作业",在作业上点击右键选择"新建作业"; 2.在"常规"选项卡的名称一栏输入作业的名称(可任取); 3.切换到"步骤"选项卡,点击"新建"按钮来新建一个步骤,在弹出的编辑作业步骤窗口中:任意输入一个步骤名,选择所要操作的数据库data,命名一栏输入sql语句:insert into table1(username,age) values('xxx',20); 4.切换到"调度"选项卡,点击"新建调度"按钮,在弹出的编辑作业调度窗口设置作业执行的时间及频率即可。由于我们是要第隔一分钟执行任务,所以我们要选择"反复出现",并点击更改按钮,在编辑反复出现的作业调度窗口中:发生频率:每天,每天:每一天,每日频率:发生周期为1分钟起始于0:00:00始止于23:59:59,最后设置下持续时间即完成了本次作业的全部设置。…

Include,require,include_once,require_once的区别

include,require,include_once,require_once四个语句的作用都是在脚本执行期间包含并运行指定文件,它们的区别主要如下: include和require的区别: 在遇到包含文件不存在或是出错的时候,require就停止脚本运行并报错,而include则继续运行脚本。 include_once和require_once的区别: 它们的区别同include和require。 Include,require和include_once,require_once的区别: 同一个文件被多次包含的情况下,Include,require每次都会将它包含进来,而include_once,require_once确保只包含一次,这样就可以避免函数重定义、变量重新赋值等问题。

PHP访问Mysql数据库示例

<?php $conn=mysql_connect("localhost","root","123456") or die("数据库服务器连接失败!".mysql_error()); if(! mysql_select_db("test",$conn)){echo "数据库打开失败!".mysql_error();} //mysql_query("insert into table1 values(4,'mzwu.com')",$conn);//如果没有指定使用$conn,则使用上一个打开的连接 //mysql_query("update table1 set url='www.…

PHP字符串的连接

PHP要让多个字符串进行衔接,要用到一个(.)“点”号,比如: 上面的输出结果就是w3pop.com 有一种情况,当echo后面使用的是(")双引号的话可以这样来达到同样的效果: 但如果是单引号的话,就会将里面的内容完全以字符串形式输出给浏览器: 将显示$name.com

解读云网互动影视6.0在线升级机制

无意中在云网互动影视6.0后台发现其系统设置下有个在线升级的功能,年前我也刚对B/S系统在线升级做过一番研究,还写了个B/S系统版本管理V1.0,看到云网的在线升级,兴致大增,便体验了一把。云网的升级过程借助了AJAX,使整个升级过程非常直观、舒适!不过我更感兴趣的是他的实现机制,于是找了相关文件研究了一番。 一、升级原理 每次升级时先比较本地版本和服务器版本,发现新版本后再到服务器获取升级文件列表,最后逐个文件下载覆盖本地文件完成更新。由于每次只能升级到当前版本的高一版本,所以当本地版本较旧时得通过多次升级才能完成更新到最新版本。 二、升级步骤 1.版本比较 升级的时候从"Admin/YWNT_TMS_inc/UpdateInc.asp"获取本地版本号,再从"http://www.ywnt.net/Update/Free/Version.asp"获取服务器上的版本号(Version.asp中将低版号到高版本号从左到右依次排列,各版本号间用vbCrLf分隔),通过比较得出当前版本的高一版本号,准备升级。…

MSSQL中单引号和双引号的使用

当 QUOTED_IDENTIFIER 为 ON 时,对于 SQL 语句中的双引号和单引号 (') 的使用,SQL Server 遵循 SQL-92 规则: ·双引号只能用于分隔标识符,不能用于分隔字符串。 为保持与现有应用程序的兼容性,SQL Server 并不完全强制该规则。如果字符串没有超过标识符的长度,则该字符串可包含在双引号内。但不建议这样做。 ·单引号必须用来包含字符串,不能用于分隔标识符。 如果字符串包含单引号,则需要在单引号前再增加一个单引号: 当 QUOTED_IDENTIFIER 为 OFF 时,对于双引号和单引号的使用,SQL Server 遵循如下规则: ·引号不能用于分隔标识符,而是用括号作为分隔符。…

借助sp_executesql返回参数值两例

通常我们使用如下语句进行返回参数值: 但是使用下边的语句是不是也可以呢? 经检测这样写是不行的,提示:必须声明变量 '@id'。最终借助sp_executesql存储过程才实现: 需要注意的是sp_executesql第一个参数@strSql必须是"ntext/nchar/nvarchar"类型,否则会出错提示:过程需要参数 '@statement' 为 'ntext/nchar/nvarchar' 类型。 还有一点值得注意的是@strSql的长度最好设置大一点,开始时我设置为50,发现老是得不到正确的结果,print @strSql才知道被截断了!