Alates ASP.NET 3.5 versioonist ka Ajax NotBot extender olemas. Kasutada saab näiteks BruteForce tööriistade vastu, mis salasõnade äraarvamisega süsteemi sisse pääseda püüavad.
Päringute arve piiramine(RequestRateLimiting) aitab ka siin nagu tavaliselt alati.
Peale extenderi vormile lohistamist saab mängida peamiselt kolme parameetriga
ResponseMinimumDelaySeconds="3" tähendab seda, et peale veebivormi avanemist(allalaadimist) peab ootama 3 sekundit ennem kui PostBack serveri poolt töötlemisele võetakse
CutoffMaximumInstances="8" ja CutoffWindowSeconds="50" määravad ära, et "luba 50 sekundi jooksul ainult 8 korda PostBack-i teha". Maakeeli tähendab seda, et 50 sekundi jooksul saab ainult 8 korda salasõna äraarvamist proovida
Code-behindi võib näiteks teha niimoodi (soovitav lisada ka veateate hägustamise osa)
protected void ButtonLogin_Click(object sender, EventArgs e)
{
AjaxControlToolkit.NoBotState nbstate;
if (!this.NoBot1.IsValid(out nbstate))
{
switch (nbstate)
{
case AjaxControlToolkit.NoBotState.InvalidResponseTooSoon: //liiga vara sisestati peale vormi laadimist
{
this.CustomValidatorLoginFailed.ErrorMessage = "Liiga kiiresti alustasite";
break;
}
case AjaxControlToolkit.NoBotState.InvalidAddressTooActive: //liiga kiiresti sisestatakse lubatud ajavahemiku jooksul
{
this.CustomValidatorLoginFailed.ErrorMessage = "Liiga sageli proovite";
break;
}
default:
{
this.CustomValidatorLoginFailed.ErrorMessage = "BotRobot " + nbstate;
break;
}
}
this.CustomValidatorLoginFailed.IsValid = false;
return;
}
//siit saati võib nüüd päringut töötlema asuda
}
reede, 29. oktoober 2010
reede, 22. oktoober 2010
applicationHost.config faili asukoht 32-bitistel arvutitel
Asub siin
C:\Windows\System32\inetsrv\config
Kui hakkad IIS7 all näiteks web.config faili RequestFiltering sektsiooni
sisse kirjutama ja pistab kisama, a'la
This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".
siis põhjus selles, et applicationHost.config failis on
<section name="requestFiltering" overrideModeDefault="Deny">
keelatud web.config failides requestFiltering osa muuta
Lubada saad, kui muuta applicationHost.config failis overrideModeDefault="Allow"
peale seda iisreset ja võtab taas pildi ette
C:\Windows\System32\inetsrv\config
Kui hakkad IIS7 all näiteks web.config faili RequestFiltering sektsiooni
sisse kirjutama ja pistab kisama, a'la
This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".
siis põhjus selles, et applicationHost.config failis on
<section name="requestFiltering" overrideModeDefault="Deny">
keelatud web.config failides requestFiltering osa muuta
Lubada saad, kui muuta applicationHost.config failis overrideModeDefault="Allow"
peale seda iisreset ja võtab taas pildi ette
esmaspäev, 11. oktoober 2010
Kuupäeva pp.kk.aaaa formaadipööramine
Ei meeldi .NET-ile pp.kk.aaaa kuupäeva formaat, igalt poolt võib hakata exceptioneid pilduma, usaldusväärsust lisab fikseeritud formaatidega tüübipööramine
string kuupaevatekst="23.10.2010";
DateTime arvekuupaev;
string[] formaat = new string[4];
formaat[0] = "yyyy-MM-dd"; //.NET standardformaat
formaat[1] = "MM.dd.yyyy";
formaat[2] = "dd.MM.yyyy"; //meie kullakallis pp.kk.aaaa
formaat[3] = "yyyyMMdd"; /ISO8601 see töötab alati nii .NET kui SQL SERVER
if (!System.DateTime.TryParseExact(kuupaevatekst, formaat, System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None, out arvekuupaev))
{
throw new InvalidOperationException("Error !! kuupäev " + kuupaevatekst+ " pole sobivas formaadis");
}
ja töötab palju paremini
arvekuupaev siin on nüüd kuupäevaks teisendatud string
string kuupaevatekst="23.10.2010";
DateTime arvekuupaev;
string[] formaat = new string[4];
formaat[0] = "yyyy-MM-dd"; //.NET standardformaat
formaat[1] = "MM.dd.yyyy";
formaat[2] = "dd.MM.yyyy"; //meie kullakallis pp.kk.aaaa
formaat[3] = "yyyyMMdd"; /ISO8601 see töötab alati nii .NET kui SQL SERVER
if (!System.DateTime.TryParseExact(kuupaevatekst, formaat, System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None, out arvekuupaev))
{
throw new InvalidOperationException("Error !! kuupäev " + kuupaevatekst+ " pole sobivas formaadis");
}
ja töötab palju paremini
arvekuupaev siin on nüüd kuupäevaks teisendatud string
teisipäev, 5. oktoober 2010
GetSafeHtmlFragment AntiXSS 4.0 Librarys on nüüd Sanitizer klassis
Valget nimekirja kasutavas Anti-Cross Site Scripting Library V4.0
http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=f4cd231b-7e06-445b-bec7-343e5884e651
on GetSafeHtmlFragment meetod nüüd Sanitizer klassis endise AntiXss klassi asemel.
Sanitizer klassi meetodid GetSafeHtml ja GetSafeHtmlFragment vaatavad sisendit
Principle of Inclusions põhimõtte järgi ja kui leitakse midagi, mis ei ole valges nimekirjas siis tõmmatakse väljundist maha
Näiteks varjestamist vajavast tekstist
Salakood <script type="text/javascript">prompt('Sisesta PIN kood'); </script>
jätab GetSafeHtmlFragment alles ainult Salakood osa
GetSafeHtml aga teeb
<html>
<body>
Salakood
</body>
</html>
HTML-i
Kasutamiseks lisa viited DLL -idele HtmlSanitizationLibray ja AntiXSSLibrary
Koodis kasuta
Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(Eval("textboxtest").ToString())
http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=f4cd231b-7e06-445b-bec7-343e5884e651
on GetSafeHtmlFragment meetod nüüd Sanitizer klassis endise AntiXss klassi asemel.
Sanitizer klassi meetodid GetSafeHtml ja GetSafeHtmlFragment vaatavad sisendit
Principle of Inclusions põhimõtte järgi ja kui leitakse midagi, mis ei ole valges nimekirjas siis tõmmatakse väljundist maha
Näiteks varjestamist vajavast tekstist
Salakood <script type="text/javascript">prompt('Sisesta PIN kood'); </script>
jätab GetSafeHtmlFragment alles ainult Salakood osa
GetSafeHtml aga teeb
<html>
<body>
Salakood
</body>
</html>
HTML-i
Kasutamiseks lisa viited DLL -idele HtmlSanitizationLibray ja AntiXSSLibrary
Koodis kasuta
Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(Eval("textboxtest").ToString())
Tellimine:
Postitused (Atom)