如何防止页面中的敏感信息被提取
发布时间:2008-05-04 11:59:00
标签:email,加密,函数,js
公布到网页上的Email经常会被一些工具自动提取,一些非法用户就会利用所提取的Email大肆发送垃圾邮件。这些工具大多都是查找链接中“mailto:”后面的信息或是“@”前后的信息来达到提取Email的目的。我在看DotNetNuke(以下简称DNN)的源代码时发现了一个不错的方式来防止这些信息被自动提取。
在DNN中有这么一段函数(Globals.vb中):
Public Function CloakText(ByVal PersonalInfo As String) As String
If Not PersonalInfo Is Nothing Then
Dim sb As New StringBuilder
' convert to ASCII character codes,将字符串转换成ASCII编码字符串形式
sb.Remove(0, sb.Length)
Dim StringLength As Integer = PersonalInfo.Length - 1
For i As Integer = 0 To StringLength
sb.Append(Asc(PersonalInfo.Substring(i, 1)).ToString)
If i < StringLength Then
sb.Append(",")
End If
Next
' build script block
Dim sbScript As New StringBuilder
sbScript.Append(vbCrLf & "<script language=""javascript"">" & vbCrLf)
sbScript.Append("<!-- " & vbCrLf)
'fromCharCode 方法:从一些 Unicode 字符值中返回一个字符串。
sbScript.Append(" document.write(String.fromCharCode(" & sb.ToString & "))" & vbCrLf)
sbScript.Append("// -->" & vbCrLf)
sbScript.Append("</script>" & vbCrLf)
Return sbScript.ToString
Else
Return Null.NullString
End If
End Function
该段代码先将需要加密的信息转换成ASCII编码字符串形式,然后用javascript中的document.write方法写到页面。
我测试了以下效果,还不错。大家也可以试试。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>测试信息加密</title>
</head>
<body>
可以被提取的链接:<a href="mailto:aaa@163.com">aaa@163.com</a><br>
不能被提取的链接:
<script language="javascript">
<!--
document.write(String.fromCharCode(60,97,32,104,114,101,102,61,34,109,97,105,108,116,111,58,120,120,120,64,116,111,109,
46,99,111,109,34,62,120,120,120,64,116,111,109,46,99,111,109,60,47,97,62))
// -->
</script>
</body>
</html>
如果大家有兴趣,还可以用更加复杂的方法来进行加密,一句话:再也不能让人轻易获取信息了!
0
投稿
猜你喜欢
- try: 语句测试代码块的错误,一般把可能会出错的代码放到这里 catch: 只有try里面的代码块发生错误时,才会执行这里的代
- 在开发中有需求在详情显示里外键字段内容,并且添加按钮弹窗内容,以及按钮跳转内容。以前并没有做过相似的开发,我们的后台是xadmin,当时正在
- 在使用SQL*LOADER装载数据时,由于平面文件的多样化和数据格式问题总会遇到形形色色的一些小问题,下面是工作中累积、整理记录的遇到的一些
- 1. csv文件自带列标题import pandas as pd df_example = pd.read_csv('Pandas_
- 今天使用python计算数据相关性,但是发现计算出的表格中间好多省略号,而且也不对齐。这也太难看了。于是在程序里加了三行:pd.set_op
- 在Google Chrome浏览器出来之前,我一直使用FireFox,因为FireFox的插件非常丰富,更因为FireFox有强大的Fire
- 又是一杯奶茶~事情的经过是这样的:又是奶茶,行吧行吧。快点开工,争取李大伟回来之前搞定。李大伟说是6位数字密码那么我们可以利用python生
- 以下是我开发时碰到的问题以及心得经验,花了些时间调试,贴出来避免大家少走弯路,如有错误欢迎指正,持续更新ing xml文件尽量以
- 写在前面最近在更新我服务器上的python以及pip版本的时候,碰见了令人头痛的问题,就是我执行了升级指令之后,升级也正常的Successf
- pip install psycopg2出现错误:Looking in indexes: https://pypi.tuna.tsinghu
- golang拾遗主要是用来记录一些遗忘了的、平时从没注意过的golang相关知识。很久没更新了,我们先以一个谜题开头练练手:package
- 关于 WARNING: Ignoring invalid distribution -pencv-python … 警
- 本文实例讲述了python定时器(Timer)用法。分享给大家供大家参考。具体如下:# encoding: UTF-8import thre
- 1 configparser安装pip3 install configparser2 configparser简介用来读取配置文件的pyth
- forma格式化的用法format函数可以接受不限个参数,位置可以不按顺序。基本语法是通过{ }和:来代替c语言的%。>>>
- 通过python的os模块获取windows或者linux主机名的通用函数。#!/usr/bin/env python #cod
- 网上存在这么一个例子 obj = pd.Series([7,-5,7,4,2,0,4])obj.rank()输出为:0 6.51
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&
- 目录0 背景说明0.1 获取AccessToken0.2 数据库查询0.3 文件下载2. 简单的封装3. 简单测试4. 参考文档0 背景说明
- 引言通过一张照片居然发现女友在宿舍里没去上课!强大的照片位置信息获取,快来一起学习吧!一、exifread函数库要怎样获得拍摄图片的GPS呢