第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

防止注入的C#字符串參數(shù)?

防止注入的C#字符串參數(shù)?

C#
至尊寶的傳說(shuō) 2022-06-18 17:43:28
以這段代碼為例:IAmazonSimpleDB client = new AmazonSimpleDBClient(Amazon.RegionEndpoint.USEast1);        SelectResponse response = client.Select(new SelectRequest() { SelectExpression = "SELECT * FROM `foo` where FooID = '" + id + "'" });我可以這樣重寫(xiě)它:IAmazonSimpleDB client = new AmazonSimpleDBClient(Amazon.RegionEndpoint.USEast1);        SelectResponse response = client.Select(new SelectRequest() { SelectExpression = "SELECT * FROM `foo` where FooID = '{0}'", id });但據(jù)我了解,這仍然容易被注射,對(duì)吧?還有什么我可以在這里做的嗎?我們沒(méi)有使用 SQL,所以我不能做 SQL 參數(shù)。
查看完整描述

1 回答

?
開(kāi)滿(mǎn)天機(jī)

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊

我通常會(huì)檢查 id 是否為整數(shù)。這樣,如果它不是 int,您將獲得異?;虿紶栔?。除非您使用 GUID 值,否則它將正常工作。


var isNumeric = int.TryParse("123", out int n); //Will give a bool


Int32.Parse(yourString); //This will give an exception if it is not an possible integer

如果不止于此,那么您可以使用正則表達(dá)式來(lái)查找奇怪的值并刪除不應(yīng)該存在的字符,例如空格。如果沒(méi)有空格,大多數(shù) SQL 注入攻擊都不會(huì)起作用……我想。刪除所有空格非常容易,我假設(shè)您的 ID(即使它很復(fù)雜)不會(huì)包含空格。


string s = " "

string t = s.Replace(" ", ""). //It will be hard to do a sql attack if the spaces are removed.

有點(diǎn)離題,但使用 C# 6.0,您可以以不同的方式格式化字符串;這是一個(gè)稱(chēng)為“字符串插值”的新功能(感謝 Etienne de Martel)。


$"SELECT * FROM `foo` where FooID = '{id}'"


查看完整回答
反對(duì) 回復(fù) 2022-06-18
  • 1 回答
  • 0 關(guān)注
  • 156 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)