如何防止网页被注入

如题所述

    选择安全可靠的网络服务商,作为国内顶级互联网IDC服务商,新网和万网是上上之选,占全国市场份额的70%。目前市场上涌现出大批廉价的服务商,部分用户为了追求廉价,使用这些产 品,结果稳定性、安全性、维护质量等问题不断涌现。人们经常错误地认为,黑客都是以网站作为入口进行入侵的,其实这只是一方面,因服务器安全等级引起的网 站问题不胜枚举。一旦服务器遭到入侵,势必波及该服务器中的所有网站。

    选择技术精湛的建站公司,目前,建站公司到处都是,甚至形成了恶性竞争,在某广告论坛里,A公司说500元可建设企业网站,B公司放言200元企业网站包干。真的有这样的好事吗? 答案是否定的,但是,为了达到超低价建站的目的,他们往往借用各种手段,以缩短建站周期。例如自助建站,花几分钟填写好简单资料就可以生成一个企业网站。 例如模板抄袭,借用网络上的共享模板或直接复制其它企业的网站,最后遭到第三方的版权投诉。正规的建站公司从来不会以追求廉价建站获取竞争力而放弃建站原 则,他们有规范的网站建设周期流程,合理安排设计师和程序员进行设计与开发,既要考虑网站整体美观,也要考虑网站功能使用的便捷,更要考虑网站后期的可维护性及网站的安全性。

    数据库加密, 纵观互联网,90%以上的网站都使用了动态网站开发技术,如ASP,PHP,JSP等等,大大提高了网站的可维护性、可操作性,但是由于动态网站开发技术需要特定的程序处理,而网络程序员往在编写这些程序的时候留下了一些漏洞,而网站建设最后一步“整站测试”又没有检查出来,因此给黑客们提供了可乘之机。

    以ASP+ACCESS为例,数据库尽量不要放在常用数据库目录中,例如admin/data目录,这样很容易被黑客猜到,建议使用方法:更改 数据库目录如admin/yiq_data。一些服务器并没有屏蔽mdb文件下载功能,倘若数据库地址被猜出,就可以直接下载数据库,导致信息泄漏。因 此,ACCESS数据库应当进行后缀伪装,例如改为#yiqnet-data#.asp就可以防止些下载。

     管理密码加密及管理帐户保密, 一般,未经加密的密码都是直接的表现形式,例如admin,这样的形式显然容易被破解。【温馨提醒:设置密码应当是英文数字的混合组合,且长度大于8 位】,这样设置大大增强了网站防破解性能。但是,仍然不够理想,因为它只能提高破解难度,而不能完全杜绝。因此,采用MD5加密势在必行,这是一个非常复 杂的加密算法,而且不可逆,例如admin通过MD5加密后在数据库中存储表现形式为(16位)7a57a5a743894a0e。设置密码时,请不要使 用生日,英文名字,名字拼音等众所周知的字串,并且,妥善保管好设置的密码,注意保密。


 


5、  防止代码注入攻击


      注入攻击是指利用网站程序设计的漏洞,通过特定的字串使SQL变相运行,从而暴露数据库的相关信息,获取管理帐号和密码,修改网站设定,上传后门程序,这 时入侵者可以在受害站点做任何想做的事情。加入防注入代码就可以解决这一问题,这是网站程序员应该做的事情。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-29

后门植入、文件篡改、网页木马如何防御? 云帮手文件防护功能帮你统统搞定!

第2个回答  推荐于2016-10-03
过滤网址的非法字符串
试试这两种方法:
第一种:
squery=lcase(Request.ServerVariables("QUERY_STRING"))
sURL=lcase(Request.ServerVariables("HTTP_HOST"))

SQL_injdata =":|;|>|<|--|sp_|xp_|\|dir|cmd|^|(|)|+|$|'|copy|format|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"

SQL_inj = split(SQL_Injdata,"|")

For SQL_Data=0 To Ubound(SQL_inj)
if instr(squery&sURL,Sql_Inj(Sql_DATA))>0 Then
Response.Write "SQL通用防注入系统"
Response.end
end if
next

第二种:
SQL_injdata =":|;|>|<|--|sp_|xp_|\|dir|cmd|^|(|)|+|$|'|copy|format|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"

SQL_inj = split(SQL_Injdata,"|")

If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "SQL通用防注入系统"
Response.end
end if
next
Next
End If

If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "SQL通用防注入系统"
Response.end
end if
next
next
end if

第三种
<%
'--------定义部份------------------
Dim Str_Post,Str_Get,Str_In,Str_Inf,Str_Xh,Str_db,Str_dbstr
'自定义需要过滤的字串,用 "■"分离
Str_In = "'■;■and■exec■insert■select■delete■update■count ...本回答被提问者和网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网