我正在开发一个应用程序。我怎样才能找到让黑客有机会攻击的漏洞?这里有哪些安全机制?
例如这段代码:
foreach (GridViewRow row in USER_GROUP_FROMS.Rows)
{
var chkboxuser = (CheckBox)row.FindControl("mainsupp");
abc = "";
if (chkboxuser.Checked == true)
{
string xe = "DATA SOURCE=technovalms;USER ID=AMC; password=amc;";
OracleConnection conn = new OracleConnection();
conn.ConnectionString = xe;
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
conn.Open();
cmd.CommandText = "insert into TECHNOVA_SMS_USER_PRIVILEAGE(ID,SMS_USER_ID,SMS_PAGE_ID) values(SEQUENCEMODEL.nextval,'" + user_type.SelectedValue.ToString() + "','" + chkboxuser + "') ";
cmd.ExecuteNonQuery();
}
}
答案 0 :(得分:1)
OWASP是你的朋友:
https://www.owasp.org/index.php/Main_Page
网站上有很多信息,您可以从Web Application Security Testing Cheat Sheet开始,对该主题进行详细介绍,并在Web应用程序的安全测试期间执行任务清单。
修改强>
顺便说一句,您提供的代码容易受到SQL注入攻击。
您将控件的内容直接附加到查询中,以便用户输入如下内容:
1';DELETE FROM TECHNOVA_SMS_USER_PRIVILEAGE'
瞧!他们可以访问您的所有数据库信息。
为避免这种情况,您应始终使用参数过滤用户输入:
cmd.CommandText = "insert into TECHNOVA_SMS_USER_PRIVILEAGE(ID,SMS_USER_ID,SMS_PAGE_ID) values(SEQUENCEMODEL.nextval,':selectedValue',':chkboxuser') ";
cmd.Parameters.Add(new OracleParameter("selectedValue", user_type.SelectedValue.ToString()));
cmd.Parameters.Add(new OracleParameter("chkboxuser", chkboxuser));