让ASP组件来保护你的网站,自定义加密方法的使用
发布时间:2009-11-07 19:27:00
大家做网站,特别是自己写的代码,常常担心被一些黑客入侵服务器,从而导致网站代码被盗,给自己带来一些损失。
那么我们怎么样做,就算黑客盗了你的代码,也无法运行呢?
这里我推荐用组件来封装一些重要的ASP代码。
但是有的时候,黑客可能入侵服务器的话,如果找到组件地址的话,把组件拷走了,同样能运行程序。
这里,我们可以在组件中做一些处理,我来说说我通常的做法。
ASP组件,不过是VB还是VC还是VC++,都可以获取到ASP中的Request对象。我们通常可以用Request中的ServerVariables("SERVER_NAME")来获取当前网站的域名。
VB代码为:
Private rq As Request
Set rq = sc.Request
servername = rq.ServerVariables("SERVER_NAME")
VC++代码为:
IRequestDictionary * ppReqDictionary;
CString sservername;
m_piRequest->get_ServerVariables(&ppReqDictionary);
char wchItem[255]={NULL};
VARIANT VServerName;
VServerName.vt=VT_BSTR;
strcpy(wchItem,"SERVER_NAME");
ppReqDictionary->get_Item(CComVariant(wchItem), &VServerName);
/*free(wchItem);*/
VariantChangeType(&VServerName,&VServerName,0,VT_BSTR);
sservername=VServerName.bstrVal;
对于本地调试的时候,获取的值是localhost或者127.0.0.1。在组件中,我们可以用MD5将获取到的主机地址与一个自定义密码组合MD5加密得到一个字符串。
譬如调用:md5(www.aspxhome.com+servername)。
我们在ASP中调用组件方法前,需要输入注册码。即上面方法生成的。然后在组件方法里判定ASP代码中输入的注册码与组件中生成的代码是否相等。如果不下相等,则不执行方法。
通过这样的思路,我们就将组件与主机域名绑定起来了。这样的话,就算黑客拿走了代码和组件,但是他不知道我们组件的加密方法的话,还是没法运行我们的程序。


猜你喜欢
- ECMAScript 3在Array.prototype中定义了一些很有用的操作数组的函数,这意味着这些函数作为任何数组的方法都是可用的。1
- 一、sort函数如果对python中的列表进行排序,可以使用List类的成员函数sort,该函数会在原空间上进行操作,对列表本身进行修改,不
- 在本教程中,我将指导您如何编写代码,以使用具有基于表单的身份验证的Spring安全API来保护Spring Boot应用程序中的网页。用户详
- 1.环境配置:2.实现原理:Php使用扩展插件imagick进行图片处理,处理pdf时使用imagick去调用ghostscript3.安装
- 以下是涉及到插入表格的查询的5种改进方法:1)使用LOAD DATA INFILE从文本下载数据这将比使用插入语句快20倍。2)使用带有多个
- 蚊子今天下午搭了一主三从的mysql复制,结果所有服务器都配置好后,发现从上报如下的错误 Last_IO_Error: Fatal erro
- 本文实例分析了python开发之str.format()用法。分享给大家供大家参考,具体如下:格式化一个字符串的输出结果,我们在很多地方都可
- 转PDF初始代码从文件夹中读取图片数据,然后将他们保存为PDF格式。不长,大概10行代码。from PIL import Imagefrom
- 图中图准备数据import matplotlib.pyplot as pltfig = plt.figure()x = [1, 2, 3,
- 一、常用函数:APP_NAME: 返回当前会话的应用程序名称(如果应用程序进行了设置)。SELECT APP_NAME()COALESCE:
- 前述VARCHAR和CHAR是两种最主要的字符串类型。不幸的是,很难精确地解释这些值是怎么存储在磁盘和内存中的,因为这跟存储引擎的具体实现有
- 关于cookie和session估计很多程序员面试的时候都会被问到,这两个概念在写web以及爬虫中都会涉及,并且两者可能很多人直接回答也不好
- 前言当我们忘记mysql数据库密码时我们就无法正常进入数据库,也就无法修改密码,那么这时该怎么修改密码呢,这里教大家一个简单常用修改密码的方
- 1. 前言所谓的逃逸分析(Escape analysis)是指由编译器决定内存分配的位置吗不需要程序员指定。函数中申请一个新的对象如果分配在
- row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col
- Git合并分支后,需要将子分支提交到git仓库,这个时候就需要单独提交子分支,其步骤如下:1.先创建子分支,并包含最新当前分支下的修改数据g
- 使用Vue来实现鼠标悬停效果。可以使用事件处理器v-on指令(简写为:@)来完成。为标签绑定mouseenter以及mouseleave事件
- 在Python代码中指定GPUimport osos.environ["CUDA_VISIBLE_DEVICES"] =
- 本文实例为大家分享了python使用Plotly绘图工具绘制柱状图的具体代码,供大家参考,具体内容如下使用Plotly绘制基本的柱状图,需要
- 本文实例讲述了python计算时间差的方法。分享给大家供大家参考。具体分析如下:1、问题:给定你两个日期,如何计算这两个日期之间间隔几天,几