什么是避免SQL注入的最佳实践.
我在我的应用程序上运行了McAfee Secure Check,它显示了SQL Server中的盲SQL注入漏洞问题
建议如下
修复这种脆弱性的唯一方法是识别每个表格参数的可接受输入和拒绝输入那些不符合标准的输入.以下是可接受的解决方案,但它不是最佳的.在包括URL参数的数据输入字段上实现内容解析.从任何用户或动态数据库输入中删除以下字符:( VBScript中的示例)'(转义单引号)input = replace(输入,"'","''")"(双引号)input = replace(输入, """",""))(右括号)input = replace(input,")","")((左括号)input = replace(输入,"(","");(分号) input = replace(input,";","") - (破折号)input = replace(输入," - ","")|(管道)input = replace(输入,"|","")关于文本输入建议在用户提供的输入周围附加引号.
如果我理解正确的建议,我必须找到我的应用程序中的所有表单并验证它不接受任何特殊字符,如 " ' ( ) *
这还有什么吗?
如何确保我的应用程序不容易进行SQL注入
编辑
Protocol https Port 443 Read Timeout30000Method POST
Path /Login
Hea
ders
Referer=https%3A%2F%2Fwww.mydomain.org%2FLogin
Content-Type=application%2Fx-www-form-urlencoded
Body
ctl00_ScriptManager1_HiddenField=0
__EVENTTARGET=0
__EVENTARGUMENT=0
__VIEWSTATE=/wEPDwUJNjc2MTk0ODk1D2QWAmYPZBYCAgMPZBYCAgsPZBYCAgUPFgIeBFRleHQ
FNzxhIGhyZWY9Jy9SZWdpc3RyYXRpb24nIGNsYXNzPSdidXR0b24nPlJlZ2lzdGVyIE5vdzwvYT5kZEMqo
HfESjF9a2aAo6EwUZFLyVY43k2Ywc5HOrQBdZqz
__EVENTVALIDATION=/wEWCgLkzYaLDgKV/vKYDgKBuZWrDQKS/tSgCgLJloD/DALrw4jECgKb/IYvAu2
GxZoEAuemgo8LAoyWmLsKGesm2g0zKeoodCDHz6Mm9GhhkuncAqXhHTAcUjL1R1Y=
ctl00$header1$btnDisclaimerHTMLOK=OK
ctl00$header1$btnDisclaimerHTMLCancel=Cancel
ctl00$header1$btnSubmit=Register
ctl00$cc1$txtEmail=x' wAiTfOr dELay '0:0:20'--
ctl00$cc1$txtPassword=0
ctl00$cc1$cmdLogin=Log In
Protocol https Port 443 Read Timeout30000Method POST
Path …
Run Code Online (Sandbox Code Playgroud) 按照这里的建议MongoDB: How to change the type of a field? 我尝试更新我的集合以更改字段的类型及其值。
这是更新查询
db.MyCollection.find({"ProjectID" : 44, "Cost": {$exists: true}}).forEach(function(doc){
if(doc.Cost.length > 0){
var newCost = doc.Cost.replace(/,/g, '').replace(/\$/g, '');
doc.Cost = parseFloat(newCost).toFixed(2);
db.MyCollection.save(doc);
} // End of If Condition
}) // End of foreach
Run Code Online (Sandbox Code Playgroud)
完成上述查询后,当我运行以下命令时
db.MyCollection.find({"ProjectID" : 44},{Cost:1})
Run Code Online (Sandbox Code Playgroud)
我仍然有Cost
字段作为字符串。
{
"_id" : ObjectId("576919b66bab3bfcb9ff0915"),
"Cost" : "11531.23"
}
/* 7 */
{
"_id" : ObjectId("576919b66bab3bfcb9ff0916"),
"Cost" : "13900.64"
}
/* 8 */
{
"_id" : ObjectId("576919b66bab3bfcb9ff0917"),
"Cost" : "15000.86"
}
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么? …
我们怎样才能摧毁活跃的手风琴,其中包含所有内容.
我开始使用这个功能
function DesctroyThisAccordion() {
var active = jQuery("#accordion").accordion('option', 'active');
jQuery("#accordion").accordion('option', 'active').remove('h3');
jQuery("#accordion").accordion('option', 'active').remove('div');
}
Run Code Online (Sandbox Code Playgroud)
我正在使用手风琴的jQuery UI插件
我试图找到活跃的手风琴并删除其h3和div内容.
如果我选择手风琴中的最后一个,我的作品
//jQuery("h3[class^='Title']:last").remove('h3');
//jQuery("div[class^='ui-accordion-content']:last").remove('div');
Run Code Online (Sandbox Code Playgroud)
但是我希望它能用于主动式手风琴
任何帮助将不胜感激.
我最近将我的ASP.NET MVC Core 2.2 应用程序升级到 Core 3.1,一切正常,但在调试会话中,如果我对CSHTML
文件进行任何更改,例如添加新的 HTML 标记或更改 JS 文件中的代码,它不会反映通过在本地主机调试会话上刷新应用程序。我将不得不停止我的 VS 并重新构建并在调试模式下运行。
这仅发生在 ASP.NET Core 3.1 的其他项目中,我使用 ASP.NET Core 2.2 进行任何 CSHTML 更改,我不必重新构建解决方案。
我在用 Microsoft Visual Studio Enterprise 2019 Version 16.4.1
任何帮助是极大的赞赏。
我有一个Ajax Action链接,它将调用一个动作方法,
在我的Ajax选项中,我调用了Validate函数,
如果此函数返回true,
然后我只想要这个动作执行,不知道我怎么能完成这个?
我的Ajax ActionLink
Ajax.ActionLink("Renew", "Edit", "Controller", new { id = "<#= ID #>" },
new AjaxOptions
{
OnBegin = "isValidDate",
OnSuccess = "DestroyRecreateAccordion",
UpdateTargetId = "accordion",
InsertionMode = InsertionMode.InsertAfter,
}, new { @class = "standard button" })
Run Code Online (Sandbox Code Playgroud)
只有当isValidDate返回true时,我才能这样做?
这是在ASP.Net MVC 3.0中创建Ajax表单的正确方法吗?
@Ajax.BeginForm("ActionName", null, new AjaxOptions
{UpdateTargetId = "dialog-model", InsertionMode = InsertionMode.Replace
}, new { id ="AjaxForm" })
<input class="product-search" id="txtSearchProduct" name="SearchString" type="text" />
<input type="submit" id="AjaxForm" class="button", value="Search"/>
<div id="searchResults">
@Html.Raw((string)ViewBag.TotalList)<br />
<br />
@Html.Raw(ViewData["MarkupSearch"].ToString())
</div>
Run Code Online (Sandbox Code Playgroud)
这可以根据需要完美地工作,但在视图上给出一条额外的线条
**System.Web.Mvc.Html.MvcForm**
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我,我如何删除额外的行.
路线
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Contact",
url: "Contact",
defaults: new { controller = "Home", action = "Contact" }
);
Run Code Online (Sandbox Code Playgroud)
我的控制器
public class HomeController : BaseController
{
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
我的Global.asax
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
Run Code Online (Sandbox Code Playgroud)
最后我的请求网址
http://localhost:1234/Contact/
Run Code Online (Sandbox Code Playgroud)
浏览器出错
无法找到该资源.
说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用.请查看以下网址,确保拼写正确.
请求的网址:/联系人/
版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.18033
我究竟做错了什么? …
我试图替换除String中前3个单词之外的所有单词(使用textpad).
防爆值: This is the string for testing.
我想只提取3个单词:This is the
从上面的字符串中删除所有其他单词.
我想出正则表达式匹配3个单词(\w+\s+){3}
但我需要匹配除前3个单词之外的所有其他单词并删除其他单词.有人可以帮我吗?
如何在MongoShell中实现以下SQL?
Select TableA.* from TableA where TableA.FieldB in (select TableB.FieldValue from TableB)
Run Code Online (Sandbox Code Playgroud)
Mongo doc给出了一些例子
db.inventory.find( { qty: { $in: [ 5, 15 ] } } )
Run Code Online (Sandbox Code Playgroud)
我希望该数组是从另一个查询动态的.可能吗?
扩展我的问题
我有一个bot
名字的集合
机器人收藏
{
"_id" : ObjectId("53266697c294991f57c36e42"),
"name" : "teoma"
}
Run Code Online (Sandbox Code Playgroud)
我有一个用户流量的集合,在该流量集合中,我有一个字段 useragent
userTraffic集合
{
"_id" : ObjectId("5325ee6efb91c0161cbe7b2c"),
"hosttype" : "http",
"useragent" : "Mediapartners-Google",
"is_crawler" : false,
"City" : "Mountain View",
"State" : "CA",
"Country" : "United States"
}
Run Code Online (Sandbox Code Playgroud)
我想选择其中useragent
包含任何bot
集合名称的所有用户流量文档
这就是我想出的
var botArray = db.bots.find({},{name:1, _id:0}).toArray()
db.Sessions.find({ …
Run Code Online (Sandbox Code Playgroud) 我正在使用 SQL Server 2008 R2 SP1。
我有一个包含大约 36034 条客户记录的表。我正在尝试对客户名称字段实施模糊搜索。
这是模糊搜索的功能
ALTER FUNCTION [Party].[FuzySearch]
(
@Reference VARCHAR(200) ,
@Target VARCHAR(200)
)
RETURNS DECIMAL(5, 2)
WITH SCHEMABINDING
AS
BEGIN
DECLARE @score DECIMAL(5, 2)
SELECT @score = CASE WHEN @Reference = @Target
THEN CAST(100 AS NUMERIC(5, 2))
WHEN @Reference IS NULL
OR @Target IS NULL
THEN CAST(0 AS NUMERIC(5, 2))
ELSE ( SELECT [Score %] = CAST(SUM(LetterScore)
* 100.0 / MAX(WordLength
* WordLength) AS NUMERIC(5,
2))
FROM ( -- do
SELECT seq = …
Run Code Online (Sandbox Code Playgroud) asp.net-ajax ×2
mongo-shell ×2
mongodb ×2
asp.net ×1
asp.net-mvc ×1
destroy ×1
fuzzy-search ×1
maproute ×1
regex ×1
routes ×1
sql ×1
sql-server ×1