判断用户名是否包含非法字符

2025-03-19 19:08:44
推荐回答(2个)
回答(1):

  判断用户名是否包含非法字符,要根据不同的网站和规则来衡量。
  非法字符,有的地方叫敏感词语、敏感词汇,简单的说就是不符合审核原则的字符、词语。不同的网站、论坛略有不同。一般是指那些涉及淫秽、国家安全、政治性很强等等方面的字符与词语,由系统自动审核。但是一般不会公布,所以有时会令人一头雾水。
  譬如:
  1.我在某论坛有句话“……和男性交流”,被认为有敏感词语,大概系统当作“性 交”,后来改为“……和男性朋友交流”,审核就通过,这个就是非法字符之一。
  2.爱问有段时间,把“脱机”定为敏感词语,现在好像修改了,我只好把“脱机”改为“脱 机”,中间一个空格,审核才通过,这个也是非法字符之一。
  解决办法,根据上面的原则,可以判断非法字符,再作技术处理:
  1.用同义词代替,如:案例1
  2.插入字符、空格,如:案例2
  3.用字母或拼音缩写代替。
  另外,在ASP中的一些特殊字符只能是见网页代码编写者用的,如果别人也在上面用的话就可以构成攻击代码,比如SQL注入攻击,所以有时就要屏蔽掉,比如select delete,update,insert ,'=等等。

回答(2):

<%' function checkusername(str) for n=1 to len(str) s=asc(mid(str, n)) if s>47 and s<58 or s>64 and s<91 or s>96 and s<122 or s=95 then'合法的字符串 checkusername=trueelsecheckusername=false response.write "用户名不合法!" response.endend ifnextend function%>因为汉字的ASC码范围是-20319到-2050,所以只需在条件语句中加上这个范围就可以了,修改后的代码: <%' function checkusername(str) for n=1 to len(str) s=asc(mid(str, n)) if s>47 and s<58 or s>64 and s<91 or s>96 and s<122 or s=95 or s>-20319 and s<-2050 then'合法的字符串 checkusername=trueelsecheckusername=false response.write "用户名不合法!"