ASP编程:chr(9)、chr(10)...这些代码所代表的
源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码chr(13)是一个回车Chr(10)是个换行符chr(32)是一个空格符934 是tab,未断定?chr(13)是一个回车Chr(10)是个换行符chr(32)是一个空格符934 是tab,未断定?以下是一些示列
特别的空格字符
特别的空格字符
在asp编程中,我们经常利用trim(rtrim,ltrim)函数往失落一些数据的开首和开头的空格,笔者比来写了一个asp谈天室,有上面的一段代码:
<% dim name,title
name=trim(request.form("name"))
password=trim(request.form("password"))
if name=""orpassword=""then response.redirect "error.asp?error=name&name=null"
myDSN="DSN=test;uid=test;pwd=test"
set cn=server.createobject("adodb.connection")
cn.open myDSN
sql="insert into test(name,title) values("&name&","&password&")"
cn.execute(sql)
cn.close%>
笔者利用了trim函数往复失落开首和开头的空格,在一样平常的情形下,这段程序实行的很一般,可是厥后笔者居然发明有人居然可使用空格出去,意义就是说,该用户的name完整为空格,可是笔者实验本人利用空格却不管都不克不及经由过程(即被程序监测了出来),开首和开头的空格都被trim函数给往失落了,即便两头有空格,笔者必要的话也能够利用一个函数把两头的空格给往失落,因为笔者利用的是sql数据库纪录下的用户材料,因而笔者嫌疑他利用了别的甚么的器材让体系看不到,因而往观察记录用户材料的sql数据库(笔者已经利用这类办法看到了带换行符的用户),可是笔者仍旧看到数据库中的改用户的材料也是空格,这岂非说该用户利用了一种手腕能够绕过我的用户名和暗码监测吗???其实找不到程序上的毛病,因而只能向这位用户就教,侥幸的是这位用户爽利的告知了笔者,本来是"Alt+255",按住alt键然后顺次按下小键盘中"2","5","5"就会发生一个对照特别的器材"空格"字符(这个观点笔者也不是对照分明,这是一种把持字符,在一些编纂器中能够看到word2000,应当另有其他的把持字符),这个空格字符分歧于传统的按下空格键发生的字符,它的asc代码是255,而传统的space键进的空格的asc代码是32,trim函数只能熟悉asc代码为32的代码并往除,以是呈现了呈现空格用户的情形!针对这类情形笔者计划了上面的两种函数往失落这"空格"字符:
function xuankong(str)
dim result
dim j
j=len(str)
result=""
dim i
for i = 1 to j
select case mid(str,i,1)
case "<"
result=result+"<"
case ">"
result=result+">"
case chr(34)
result=result+"""
case "&"
result=result+"&" 以上代码转换一些html标志
case chr(255) 避免特别空格
result=result
case chr(13) 避免回车符
result=result+""
case chr(10) 避免换行符
result=result+""
case else
result=result+mid(str,i,1)
end select
next
xuankong=result
end function
然后在你的asp程序中利用这个函数,好比:
name=xuankong(trim(request.form("name")))
由于字符0-z asc代码的数值为 48-122 这一个区段 ,以是可使用以下的办法监测:
dim j
j=len(trim(request.form("name")))
for i= 1 to j
if asc(mid(name,i,1))>122 or asc(mid(name,i,1))<48 then response..redirect"error.asp?
error=special"
next
固然这类“空格”临时没有发明会损坏程序的成绩,可是倒是可让人扰乱的,仍是防了的好,不外这类空格也有一种优点,假如作为你得上彀暗码的话,嘿嘿… …生怕没有几团体能看到吧!看到的都是觉得是space,可是却不是… … 笔者不熟习php和jsp以是不晓得在这两种器材中是不是会存在这类成绩
怎样读出空格
怎样读出空格
我们在网页中常常要静态显现从文件中掏出来的内容,假设你编写了一个谈天室或论坛之类的程序,每位宣布行动者的内容都要先存在文本文件中,然后再显现在网页上。可是我们在网页上让用户输出内容的控件是文本框。那末文本框中的内容显现在网页上时不克不及把相似空格、换行的字符显现出来,也就是说没有段落。要想在网页上显现段落,必需在我们输出文本的空格、换行字符处拔出HTML标记才干把这些字符显现出来,请看上面的例子。
假设在网页上是一个谈天室画面,我们在文本框中输出内容后,点击“提交”便可在页面上把我们的内容显现出来,文本框名为Text1,我们用上面的办法就能够很奇妙地完成显现文本换行和空格的功效。
<%
......
......
str=request.querystring("text1")
str=Replace(str,Chr(32)," ")
把空格换成 标记
str=Replace(str,vbCrLf,"<br>")
把回车换行符换成<br>标记
Response.writestr
......
......
%>
经由下面的代码后,我们就把文本中的回车换行符变成扫瞄器所能辨认的<br>换行标,而把空格换为 空格标记。个中Chr(32)暗示空格,vbCrLf暗示回车换行。
chr(13)是一个回车
(
例子:把一切回车符交换为<br/>
#Replace(foo,Chr(13),"<br/>","ALL")#
)
Chr(10)是个换行符
一切关于ASCII码的表格:http://www.asciitable.com./
<cfscript>
/**
*一个加强版的文章段落格局化函数
*利用)交换TAB,撑持多体系
*RewriteandmultiOSsupportbyNathanDintenfas.
*
*@paramstringThestringtoformat.(Required)
*@returnReturnsastring.
*@authorBenForta(ben@forta.com)
*@version3,June26,2002
*/
functionParagrap1hFormat2(str){
//firstmakeWindowsstyleintoUnixstyle
str=replace(str,chr(13)&chr(10),chr(10),"ALL");
//nowmakeMacintoshstyleintoUnixstyle
str=replace(str,chr(13),chr(10),"ALL");
//nowfixtabs
str=replace(str,chr(9),"","ALL");
//nowreturnthetextformattedinHTML
returnreplace(str,chr(10),"<br/>","ALL");
}
</cfscript>
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。 那么,ASP.Net有哪些改进呢? Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名") 不能只是将它停留在纸上谈兵的程度上。 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? 没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
页:
[1]