发布的网站被攻击(防sql注入)

   好险啊,幸亏我们做的网站源码还没有完全上传,幸亏现在我们的网站用的数据库还是虚拟的用户,要不然真的无法想象会给我们接手的这个公司带来多大损失;

   我仅以受害者的身份向菜鸟同胞们分享一下安全问题,我们晚上刚把自己的网站源码上传至服务器,而后进行数据库,及IIS的配置,首先我们直接用的sa 以及开发测试中惯用的密码:sa123456

(安全隐患1),而后我们的服务器也是超级管理员的administrator(安全隐患2),配置好后就直接发布了,,,

   结果可想而知,不到半小时,我们的网站就被攻击了,服务器完全被窃取了,这是多么的可怕,貌似有人一直在监视着我似的,这要一有必要,你手中的东西都是他的,我是怕了,开来安全的确是个大问题;

   

    而后就问了“度娘”,及请教了好多身边的朋友:

   解决方法:1,为数据库设置跟自己项目有关的用户,复杂点最好,设置相应的权限;

             2,服务器的用户名,及密码也要复杂(自己看着改);

             3,在你的项目源码中加入基本的防攻击代码:如防止sql注入

             @1如果你的是.net开发的网站,则将防止sql注入语句放入Global.asax文件中

               源代码:

            //防止Sql注入 第一种(另外一种跳转页面在这里不介绍了)

        protected void Application_BeginRequest(Object sender, EventArgs e)

        {

            //SQL防注入

            string Sql_1 = "exec|insert+|select+|delete|update|count|chr|mid|master+|truncate|declare|drop+|drop+table|creat+|creat+table";

            string Sql_2 = "exec+|insert+|delete+|update+|count(|count+|chr+|+mid(|+mid+|+master+|truncate+|char+|+char(|declare+|drop+|creat+|drop+table|creat+table";

            string[] sql_c = Sql_1.Split('|');

            string[] sql_c1 = Sql_2.Split('|');

 

            if (Request.QueryString != null)

            {

                foreach (string sl in sql_c)

                {

                    if (Request.QueryString.ToString().ToLower().IndexOf(sl.Trim()) >= 0)

                    {

                        Response.Write("警告!你的IP已经被记录!");//

                        Response.Write(sl);

                        Response.Write(Request.QueryString.ToString());

                        Response.End();

                        break;

                    }

                }

            }

 

            if (Request.Form.Count > 0)

            {

                string s1 = Request.ServerVariables["SERVER_NAME"].Trim();//服务器名称

                if (Request.ServerVariables["HTTP_REFERER"] != null)

                {

                    string s2 = Request.ServerVariables["HTTP_REFERER"].Trim();//http接收的名称

                    string s3 = "";

                    if (s1.Length > (s2.Length - 7))

                    {

                        s3 = s2.Substring(7);

                    }

                    else

                    {

                        s3 = s2.Substring(7, s1.Length);

                    }

                    if (s3 != s1)

                    {

                        Response.Write("你的IP已被记录!警告!");//

                        Response.End();

                    }

                }

            @2:如果你的是用asp开发的网站(asp已过时,现在很少用):

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

目前安全问题就只考虑到这些了,希望各位大虾有更好的策略能跟大家分享一下,你安全,我安全,大家才安全。。。和谐社会,讲究和谐!!!            

 

 

 

你可能感兴趣的:(网站,安全,发布,危害)