第一次用asp.net开发,后台登陆以及安全,大家过来看看安全不。

Cnaspnet 2007-03-13 09:05:05
public partial class EduAdmin : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Session.Clear();
}
}
protected void Button2_Click(object sender, EventArgs e)
{
TextBox1.Text = "";
TextBox2.Text = "";
}
private string ClearInputString(string inputstring, int maxlength)
{
StringBuilder sb = new StringBuilder();
if ((inputstring != null) && (inputstring != string.Empty))
{
inputstring = inputstring.Trim();
if (inputstring.Length > maxlength)
{
inputstring = inputstring.Substring(0, maxlength);
}
for (int i = 0; i < inputstring.Length; i++)
{
switch (inputstring[i])
{
case ' ': sb.Append(""); break;
case '"': sb.Append(""); break;
case '>': sb.Append(""); break;
case '<': sb.Append(""); break;
default: sb.Append(inputstring[i]); break;
}
}
sb.Replace("'", "");
}
return (sb.ToString());
}
protected void Button1_Click(object sender, EventArgs e)
{
if (Session != null)
{
JWC_Sql Exsql = new JWC_Sql();
Exsql.Open();
string coluser=TextBox1.Text.ToString();
string colpwd=FormsAuthentication.HashPasswordForStoringInConfigFile((TextBox2.Text.ToString()),"md5");
string sql = "SELECT * FROM jw_colset WHERE jw_colsetuser='" + ClearInputString(coluser,coluser.Length) + "' and jw_colsetpass ='" + ClearInputString(colpwd, colpwd.Length) + "'";
SqlCommand Comm = new SqlCommand(sql, Exsql.con);
SqlDataReader dr = Comm.ExecuteReader();
if (dr.Read())
{

Session["SetName"] = dr["jw_colsetuser"];
Session["SetCode"]=dr["jw_colsetcode"];

Response.Redirect("EduCollege/Default2.aspx");

}
TextBox1.Text = "";
TextBox2.Text = "";
}

}

private string ClearInputString(string coluser)
{
throw new Exception("The method or operation is not implemented.");
}
}

这样在后台里每一个页面page_load插入
if (Session["SetName"] == null)
{
Response.Redirect("../EduLogin.aspx");
}

就安全可以了?

有没有漏洞..
...全文
354 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
redebug 2007-03-15
  • 打赏
  • 举报
回复
用这种sql + sql的组合危险太大了
没有明白为什么不用SqlParameter 来传递参数
eliphe 2007-03-15
  • 打赏
  • 举报
回复
有问题: 这句话:

string sql = "SELECT * FROM jw_colset WHERE jw_colsetuser='" + ClearInputString(coluser,coluser.Length) + "' and jw_colsetpass ='" + ClearInputString(colpwd, colpwd.Length) + "'";
qij2256 2007-03-14
  • 打赏
  • 举报
回复
没必要这么复杂吧。。 用一个正则表达式限制只能输入字母和数字。。然后限制16位之内。。用个存储过程。。就绝对没问题了。。
Animatrix 2007-03-14
  • 打赏
  • 举报
回复
学习~
yekai1983 2007-03-14
  • 打赏
  • 举报
回复
学习中
zhujiang876 2007-03-14
  • 打赏
  • 举报
回复
我也差不多噢
zhenjiaobing 2007-03-14
  • 打赏
  • 举报
回复
mark
lk829 2007-03-13
  • 打赏
  • 举报
回复
基本上还行!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧