大家好,我是小雨 QQ:798033502
欢迎来到BadBoy 网络安全小组
我们的网站是:www.hackbadboy.com
网站宗旨:普及网络安全知识,推动信息技术发展。
BadBoy技术交流群:112701095
BadBoys—兄弟情谊群:118262984
BadBoy网络安全小组:13822127
====================================================
今天给大家带来的教程是《网站安全编程第一讲》
一、为什么出网站安全编程的教程?
1,Web安全即网站安全,80%是由于网站程序本身存在安全隐患,才使得黑客有机可成。这就需要我们网站编程人员对网站程序进行安全优化和完善,因此学习网站安全编程便成为每个网站编程人员的必须课。
同时,对于入侵者来说,了解程序员的常规防御手段,编程思想,更是一种必要。
程序员与黑客直接的战争由此开始。
2,网站编程人员在编写网站代码时,除了由于个人的疏忽,更重要的是因为编程思想没有得到很好的转变,没有很高的安全意识,以为程序完成了功能就万事大吉,等着老板发薪水,实际上是不负责任的一种表现。而程序漏洞被黑客挖掘出来,网站被黑掉,这时候再去赶忙去修复漏洞,改写代码,只是亡羊补牢,为时已晚。数据库一旦被黑客拖库,这时候哭是没有用的。只有默哀。
(http://www.51zxw.net/trans.aspx?id=22)
二、完善和优化目录结构
1,深刻理解内置文件夹的含义
2,文件夹权限分配要得当
3,采用非常规思维命名
4,网站不要设置后台,或设置变态后台
5,各文件夹下都要加上一个名为index.html 的空文件
6,对敏感目录加上身份认证和跳转
7,设置假后台
三、web.config 文件加密
1,web.config文件是网站配置文件,web.config文件的安全行直接影响着整个网站的安全。我们对web.config文件中数据库连接字符串,一些其他敏感信息进行加密,也就保证了较强的安全行。
2,示例代码:
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.Configuration;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//获取网站根目录下面的web.config配置文件节
Configuration config = WebConfigurationManager.OpenWebConfiguration("~/");
//获取appSettings配置块信息
ConfigurationSection appsettings = config.GetSection("appSettings");
//判断配置块是否加密,如果加密则解密,否则加密
if (appsettings.SectionInformation.IsProtected )
{
appsettings.SectionInformation.UnprotectSection();
}
else
{
appsettings.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
}
//保存配置信息
config.Save () ;
Response.Write("web.config配置文件的内容<br/>") ;
foreach (string key in WebConfigurationManager.AppSettings.Keys )
{
Response.Write ("键值名:"+key+"<br/>");
Response.Write ("键值为:"+WebConfigurationManager.AppSettings[key]+"<br/><br/>") ;
}
}
}