Fråga:
Returnerar du fel HTTP-svarskod avsiktligt?
Miles Luders
2017-02-09 00:25:06 UTC
view on stackexchange narkive permalink

Jag skriver ett enkelt REST API och vill bara begränsa åtkomsten till min mobilklient. Med andra ord försöker jag förhindra att en skadlig användare t.ex. använder curl för att göra en obehörig POST-begäran.

Detta är naturligtvis omöjligt. Det finns dock vissa motåtgärder som gör det svårt för en hackare att lyckas. Just nu krypterar jag alla förfrågningar med en privat nyckel, lagrad klientsida (uppenbarligen är detta inte idealiskt, men svårigheten att omvända en iOS-app kommer förhoppningsvis att avskräcka alla utom de mest bestämda hackarna).

En enkel idé jag hade är att returnera fel HTTP-svarskod för en obehörig begäran. Snarare än att returnera en "401 Obehörig", varför inte returnera t.ex. "305 Använd proxy", dvs avsiktligt förvirrande. Har någon någonsin funderat på att göra detta?

Det kallas "säkerhet genom dunkelhet".Det kan sakta ner någon, men det handlar om det.
För vad det är värt läste jag någonstans i ett officiellt dokument på HTTP (ledsen, kom inte ihåg källan), att det är tillåtet att returnera 404 istället för 401 för att inte läcka information om resurs existens till obehöriga kunder.
Kommentarer är inte för längre diskussion;den här konversationen har [flyttats till chatt] (http://chat.stackexchange.com/rooms/53456/discussion-on-question-by-mpl-returning-the-wrong-http-response-code-on-purpose).
Om du inte returnerar rätt HTTP-statuskoder kan man säga att du strikt talar inte HTTP.Så när du väl har gått så långt kan du helt enkelt implementera ett helt annat protokoll på din egen ...
@Pascal detta är den inställning som GitHub har använt (åtminstone) när du försöker komma åt ett privat arkiv när det inte är autentiserat eller obehörigt.
@Pascal Du tänker använda 404 i stället för 403. [HTTP-standarden] (https://tools.ietf.org/html/rfc7231#section-6.5.3) tillåter uttryckligen detta för att undvika att avslöja förekomsten av en resurstill en användare som inte får åtkomst till den.Du kan hålla en 401 från att läcka information om existens om du behöver det för * alla * platser som matchar mönstret för andra platser som kräver autentisering.(Jag hoppas att det är okej att lägga om den här kommentaren. Jag tycker att det här är viktig information.)
Elva svar:
tim
2017-02-09 00:47:01 UTC
view on stackexchange narkive permalink

Har någon någonsin funderat på att göra det här?

Ja, det pratades faktiskt om exakt detta på defcon 21 ( video, bilder).

Deras slutsats var att arbeta med svarkoder som stötande säkerhet ibland kan leda till att bromsa automatiska skannrar, icke-fungerande skannrar och en enorm mängd falska positiva effekter eller falskt negativa (det kommer uppenbarligen att göra lite eller ingenting för manuella skanningar).

Även om säkerhet genom dunkelhet aldrig bör vara ditt enda försvar kan det vara fördelaktigt som djupförsvar (ett annat exempel: det rekommenderas att sänder inte versionsnummer för alla använda komponenter).

Å andra sidan borde ett REST API vara så rent som möjligt, och att svara med avsiktligt fel HTTP-koder kan vara förvirrande för utvecklare och legitima klienter (detta är lite mindre problem för webbläsare, där användare ser faktiskt inte koder). På grund av detta skulle jag inte rekommendera det i ditt fall, men det är fortfarande en intressant idé.

Även om jag erkänner legitimiteten för "säkerhet genom dunkel" som ett hinder för inträde (dvs att sparka ut skriptkiddies), tycker jag att det är så överanvändat att det är allvarligt skadligt för den faktiska applikationens säkerhet.Av de två relaterade områdena - kryptografi och informationssäkerhet - är det ena som förlitar sig på "obscurity", medan det andra inte gör det.Förresten, den som ** gör ** blir lättare för det mesta.Dessutom gäller oklarhet för alla parter (inklusive pentestrar som du betalar) och introducerar ytterligare komplexitet, ergo attackvektorer.
@K.Steff * "kryptografi förlitar sig på dunkel" *?Menade du att skriva "steganography"?
@K.Steff Varje regering som använder klassificerade kryptografiska algoritmer använder "säkerhet genom dunkel" i kryptografi.
+1 för att nämna utvecklare.När jag ändrar ett system och plötsligt får en 404 där jag tidigare fick en 200 plötsligt har jag ett spel whack-a-mullvad som identifierar var beslutet togs att skicka ett annat svar.Allt jag kan säga till OP är att om du bestämmer dig för att göra detta, snälla vänligen dokumentera det ordentligt, annars kommer ditt namn att bli lera någon gång i framtiden
Jag tycker att det här är ett mycket praktiskt svar.Det gör mig arg när någon sätter ned säkerhet genom dunkel eftersom de läser att det var dåligt på en blogg eller något.I den verkliga världen kan det definitivt vara användbart.Det kan bara inte vara det enda tricket i din väska, det är allt.
@ypercubeᵀᴹ Nu när jag läser min kommentar låter det som om jag säger att, medan jag menade exakt motsatsen - i kryptografi är Kerckhoffs princip i princip den ideologiska motsatsen till "Säkerhet genom dunkelhet".
Xiong Chiamiov
2017-02-09 00:34:55 UTC
view on stackexchange narkive permalink

Det kommer faktiskt inte att sakta ner en angripare något märkbart belopp, men kommer att göra att framtida utvecklare som arbetar på din plattform blir riktigt irriterade på dig. Det kan också orsaka att vissa fina funktioner i dina HTTP-förfrågningsbibliotek inte är så trevliga, eftersom de fungerar av felaktig information.

Detta är en mycket svag form av säkerhet genom dunkelhet. När du utformar ett system som detta bör du tänka på att sakta ner en angripare med hundratals år, inte tiotals minuter - annars kommer du fortfarande att förlora.

Hård, men bara.Jag gillar det :) .Det sätter svaghetens natur i perspektiv.
Denna fråga handlar om ett scenario där säkerhet genom dunkel är den enda möjligheten.Ditt första stycke är bra, men ditt andra är irrelevant.
@Nacht hur är den andra irrelevant?Det är väldigt relevant.Han säger att om du ska använda säkerhet genom dunkel, är det bättre att döda bra dunkelhet.Han säger att det här försvaret inte alls kommer att sakta ner någon sofistikerad
@Cruncher, nej, säkerhet genom dunkel kommer aldrig att sakta ner någon i hundratals år.Han säger att du behöver "ordentlig" säkerhet, vilket är omöjligt med OP: s nuvarande design.
@Nacht "säkerhet genom dunkel är den enda möjligheten" dvs "ingen säkerhet är den enda möjligheten" (hyperbolalarm).Om du inte kan säkra ett system och behöver det säkert ska du inte implementera det.Samma sak gäller affärsmodeller, som annonser.
"När du utformar ett system som detta bör du tänka på att sakta ner en angripare med hundratals år, inte tiotals minuter - annars kommer du fortfarande att förlora." Mot en dedikerad, beslutsam, skicklig angripare?Ja.Men för att besegra automatiserade attackprogram eller mänskliga angripare som bara letar efter de enklaste och mest utsatta målen att dra nytta av?Nej. De kommer sannolikt att röra sig längs.Och det, BTW, kommer i sin tur ofta att ge dig bättre synlighet för att upptäcka fler avsiktliga hot när de möter de bästa "riktiga" säkerhetsåtgärderna du har möjlighet att använda.
Jag tror att detta verkligen beror på starka antaganden om angriparen.Visst kommer det inte att sakta ner en skicklig angripare som specifikt riktar sig mot webbplatsen, men det kan motverka automatiserade skanningsförsök eller långsamma angripare som kan hamna förvirrade av svarkoden.Så det lägger inte till * nödvändigtvis * säkerhet, men det kan förbättra saker.Frågan är om det är värt tiden att implementera något som kan sakta ner en mindre beslutsam angripare.
@mostltinformed OP nämnde specifikt en skadlig användare med hjälp av curl eller någon annan metod för att göra (obehöriga) förfrågningar.Angriparen har redan utvecklat iOS-appen för att få en nyckel som är nödvändig för att utföra attacken bland annat.Det kommer inte att stoppas av mindre besvär med returkoder.
J.A.K.
2017-02-09 00:45:45 UTC
view on stackexchange narkive permalink

I stället för att returnera en "401 Obehörig", varför inte returnera t.ex. "305 Använd proxy", dvs avsiktligt vara förvirrande.

Ja, det kommer att förvirra en angripare. Men för en utbildad kan det inte vara mer än två sekunder platt. Och statuskoder är inte så användbara, huvudsakligen bara när man tvingar filnamn.

Säg att jag har en giltig nyckel och jag kan se att du returnerar 200-intervallkoder för min autentisering. Om jag ändrar lite i min nyckel, och för varje begäran du antingen returnerar 305s, kommer jag genast att tänka "Hmm. Verkar som att utvecklaren kanske har trasslat". Om du returnerar slumpmässiga koder vet jag att det var avsiktligt och jag ignorerar dem bara.

svårigheten med att omvända en iOS-app kommer förhoppningsvis att avskräcka alla utom de mest beslutsamma hackarna

Ja det kommer det, men eftersom det bara tar en att publicera det, saktar det bara ner igen ..

För länge sedan skrev jag en kod som startar en attack mot någon som försöker den här typen av saker.Jag slutade lära mig att det inte är den klokaste av idéer.Mycket mer sane kan vara dålig begäran -> IP-förbjudet i 100 timmar på brandväggsnivå.
Dan Landberg
2017-02-09 00:33:59 UTC
view on stackexchange narkive permalink

Detta är säkerhet genom dunkelhet, det vill säga det ger inte mycket säkerhet alls. Lösningen du föreslår kommer bara att sakta ner en angripare och inte hindra dem från att använda sin egen klient. Faktum är att din metod för att kryptera förfrågningarna, beroende på din implementering, faktiskt kan göra din applikation mindre säker genom att öppna upp attacker på andra delar av kryptosystemet. Din ansträngning skulle bättre spenderas för att försäkra sig om API-funktionerna själva (dvs. testa dem och säkra dem mot attacker som SQL-injektion), snarare än att försöka förhindra obehöriga klienter från att komma åt dem.

Jag är dock förvirrad.Alla säger att OP behöver verklig säkerhet och INGEN har nämnt hur man gör det ännu.Problemet är att de inte vill att slutpunkten ska ringas om inte en annons sågs.Hur uppnår de detta?
Det är en helt annan fråga än den ursprungliga, och också fortfarande svår.Du skulle behöva någon mekanism på serversidan för att avgöra om användaren verkligen och verkligen har sett annonsen.Kanske skickar du en digitalt signerad token som inkluderar tidsstämpeln när begäran om annonsen togs emot och annonsens längd.Sedan måste den token skickas in igen och valideras när användaren vill begära den skyddade slutpunkten.Jag skulle undersöka DRM-lösningar.Att rulla den här själv utan kryptografiupplevelse skulle vara svårt att göra säkert ..
Evi1M4chine
2017-02-09 15:58:04 UTC
view on stackexchange narkive permalink

Men användaren använder redan ditt protokoll.

Ditt problem är att serverns gränssnitt för vad användaren kan göra inte är säkert!
Du bestäm vilka data din server skickar ut till vem!
(Hej kära onlinetidningar. Ja, jag tittar på dig!)

Designa det , förutsatt att användaren är klienten. Inte din kod. Eftersom han är det. Det borde inte ha någon roll vilken klient som används.
Din app körs på en CPU som är under maskinvarukontroll av användaren. Din kod är bara en lista med kommandon / data, och användaren och hans CPU kan bearbeta den hur som helst. Inkluderar inte bearbetar det.
Han bestämmer vad hans CPU gör. Missa inte hans nåd att acceptera din appkod som den är för en rätt till blind körning. Du är den som har litat på här, och det förtroendet är väldigt flyktigt.
Speciellt med sleazy-taktik som denna.

I vilket fall som helst: Du ger användaren krypteringsnyckeln och allt och förväntar honom att inte använda den själv, för du lägger den någonstans i din korg med kod. ... Precis som DRM är det ormolja och kan aldrig fungera.
Det tar bara en person att hitta var du sätter nyckeln. (Det skulle till exempel vara jag.) Alla andra måste bara google för det.

Men jag är förvånad över att du bara tänker på att kryptera protokollet mot användaren, istället för för hans skydd mot människa-i-mitten-attacker.
förutsatt att detta vanligtvis görs (Ja, jag pratar med dig "innehållsbranschen" igen.): Om din användare är din fiende, kanske du bör leta efter en affärsmodell som är baserad på rättvisa och vinn-vinn, istället för att slita bort användaren och behöva hantera motreaktioner.

PS: Ignorera alla ”säkerhet genom dunkelhet” svar. Detta är ett misstag som resulterar i korrekt beteende men som fortfarande bygger på ogiltiga antaganden. Att använda det som ett argument är i bästa fall amatörmässigt och inte riktigt kompetent.
I själva verket är all säkerhet genom dunkelhet. Vissa är bara mer dunkla (= bättre förklädda). Den verkliga anledningen till att detta är dåligt beror på att det vi kallar verklig säkerhet är en bazillion gånger mer obskyr, vilket ger en verklig (statistisk) pålitligt hög dunkel, i motsats till mycket enkel dunkel som bara är för troligt för någon att komma på från ingenting.

Intressant syn på "all säkerhet sker genom dunkelhet".Om något är omöjligt att knäcka under en mänsklig livstid, är det inte säkert?:)
Uttrycket * oklarhet * av frasen * säkerhet genom otydlighet * hänvisar specifikt till oklarhet i systemets design i motsats till nyckelmaterial.Det är ett sätt att hänvisa till Kerchovs princip.
Ditt påstående att "säkerhet genom dunkelhet" inte är ett användbart begrepp är inte riktigt giltigt.Jag antar att din poäng är att det att ha t.ex. en hemlig nyckel bara är säkerhet genom att hålla nyckeln obskär.Men om jag får reda på din hemliga nyckel kan du bara ersätta den med en ny nyckel, komma igång igen och försöka vara mer försiktig med din nya nyckel.Om jag får reda på din hemliga algoritm måste du bygga ett helt nytt system, vilket är mycket mer arbete.Du kan också ge mycket bättre gränser för hur lång tid det tar för mig att räkna ut din nyckel, kontra hur lång tid det tar för mig att räkna ut din algoritm.
@DavidRicherby Jag vill rösta den här kommentaren 100 gånger.Det är inte alls användbart att haka all säkerhet i samma fack med olika grader.Vi uppfann terminologin "säkerhet genom dunkelhet" av en * mycket * bra anledning.
@DavidRicherby: Du upprepar min poäng som om det är ett motargument.Det är min poäng att all säkerhet bara skiljer sig åt av hur mycket arbete som krävs för att knäcka / fixa (aka obscurity), och * därför finns det ingen speciell magisk klyfta med "inte obscurity-baserad" "riktig säkerhet".
@Evi1M4chine Nej det är jag inte.Du säger att all säkerhet i slutändan är säkerhet genom att hålla något dunkelt.Jag säger att vi inte använder frasen "säkerhet genom dunkel" för att betyda "säkerhet genom att hålla något dunkelt."Det är som att hävda att inget system är säkert eftersom någonting kan hackas av en tillräckligt bestämd, tillräckligt kraftfull motståndare och därför är ordet "säkerhet" värdelöst eftersom ingenting är riktigt säkert.Det är inte vad ordet "säkerhet" brukar betyda, och det tunna du pratar om är inte vad "säkerhet genom dunkel" brukar betyda.
@Cruncher: Ett bra tecken för när människor tror starkare på något för att de förstår mindre av det är när de använder känslomässiga argument som "av en * mycket * bra anledning", men inte säkerhetskopierar det.Om det inte var en tro, skulle de helt enkelt ange den anledningen istället för en sliten fas.En tyvärr mycket vanlig sak bland människor.Precis som argumentreflektion, selektiv tolkning, stråmannsargument, att ta allt som personligt och förolämpande etc.
@Evi1M4chine "Av en mycket bra [men otydlig] anledning" är inte ett emotionellt argument.Men det är argument av dunkelhet.;-)
@DavidRicherby: Berättar du vad * jag * sa ??^^ Dude, jag håller med dig!(Eller snarare du med mig.) Vad mer vill du ha?Koppla av! Och snälla "tolk" inte saker som jag inte sa.Jag sa inte att termen "säkerhet" är värdelös. Och ja, det finns INGEN 100% säkerhet.Någonsin.** Det är bara nivåer ** av dunkelhet.Du kan bekvämt välja en godtycklig definition av "säker", men då ska du ut i fantasiland.
@Evi1M4chine Nej, jag håller inte med dig.Du sa att begreppet säkerhet genom dunkelhet är "en misstag".Jag sa att det inte är det.Det är ett extremt användbart koncept.
P.S .: Detta är ett annat exempel på varför text är ett dåligt medium för mänskliga konversationer.Alla missförstånd.
@DavidRicherby: Och 1. varför gör du argument mot det då, och 2. när ska du börja argumentera för att säkerhetskopiera det.:) / mig luktar lite trolling
@Evi1M4chine För någon som tuktade "känslomässiga" argument är du säker på att du är väldigt emotionell.Den "mycket bra" anledningen var faktiskt mer av en överklagande till myndighet mer än någonting.Inget emotionellt med det.Jag svarade inte ens direkt på dig.Jag förstärkte bara Davids poäng.Vi diskuterar inte här.Det faktum att mitt argument var ofullständigt betyder inte att det är ogiltigt eller ogrundat.
Tom
2017-02-09 15:46:02 UTC
view on stackexchange narkive permalink

Som andra redan har förklarat, saktar säkerhet genom dunkelhet i bästa fall en angripare.

I ditt specifika fall skulle jag säga att det inte kommer att ha någon märkbar effekt. För att komma till denna punkt var din angripare redan tvungen att omvandla din app och extrahera den privata nyckeln. Det betyder att din angripare inte är en idiot och vet vad han gör. Lite dunkel kostar honom mindre tid än det tar dig att implementera den.

Tja tekniskt är det här för att försöka GAMMA det faktum att de behöver hämta den privata nyckeln från appen.Det vill säga detta händer först. Men den som kan få nyckeln från appen kommer inte att hållas uppe av det alls
Varje icke-idiot angripare skulle iaktta den legitima trafiken först och skulle omedelbart se att förfrågningarna är krypterade.Det skulle bokstavligen vara det första han märker.
user2320464
2017-02-10 00:56:46 UTC
view on stackexchange narkive permalink

Som andra redan har nämnt föreslår du att du använder Security by Obscurity. Även om den här tekniken har sitt syfte, bör du överväga följande innan du väljer att använda detta tillvägagångssätt:

  • Erbjuder teknisk support för ditt API. Att använda vilseledande HTTP-svarkoder gör det svårt för någon annan än dig att ge support. De måste överväga om den specifika situationen faktiskt skickar rätt svarkod eller om den skickar en obskyr. Bör du bestämma dig för att förbli den enda kontakten för eventuella supportförfrågningar, bör detta inte vara ett problem.
  • Vad är en "skadlig användare"? Var försiktig när du kategoriserar en begäran som skadlig eftersom den kan ha negativa effekter. Antag att en IP är fast besluten att skicka skadlig trafik och motåtgärder används. Antag nu att samma IP faktiskt är en proxy med hundratals eller tusentals användare bakom sig. Du har nu tillämpat din motåtgärd på dem alla. Samma princip kan användas för att identifiera skadlig aktivitet i rubriker och / eller kropp.
  • Applikationskoden är långsammast. Förfrågan måste gå igenom hela stacken för att äntligen komma till "säkerhets" -logiken. Denna arkitektur skalas inte bra och är långsam. Dåliga begäranden bör stoppas så tidigt som möjligt, vilket är förutsättningen för att använda Web Application Firewalls (WAF).
  • Utöka åtkomsten. Om ditt API blir tillgängligt för fler klienter, var det ursprungligen designat för, de nya klienterna måste vara medvetna om möjlig användning av vilseledande HTTP-svarskoder.
  • Ihållande skadliga användare. Som andra har nämnt är denna teknik bara en hastighetsstöt.

Bättre tillvägagångssätt

Fokusera din tid på vitlistning av alla kända bra förfrågningar. Detta är så mycket lättare än att försöka identifiera alla potentiella dåliga förfrågningar. Allt som inte visas på vitlistan bör omedelbart få en lämplig svarkod som HTTP 400 eller HTTP 405 om du filtrerar på HTTP-verb (som exempel). Detta händer helst innan begäran träffar din applikationskod.

Tillsammans med godkända förfrågningar om vitlistning, se till att din ansökan är skyddad baserat på OWASP-riktlinjer. Du får mycket bättre resultat spendera din tid med OWASP och försöker sedan avgöra vad en skadlig användare är och returnera en obskur HTTP-svarskod.

rosuav
2017-02-10 14:28:14 UTC
view on stackexchange narkive permalink

I grund och botten kan du INTE hindra obehöriga kunder från att skicka förfrågningar. Det närmaste möjliga skulle vara att få någon form av kryptografisk kontroll utförd hos klienten, men som Sherlock Holmes sa, "vad man kan uppfinna, kan en annan upptäcka". (Jag vet detta säkert, för jag har knäckt människors klientsäkerhetssäkerhet vid ett antal tillfällen.)

Bygg istället ditt API så att någon får använda det använder anpassade klienter. Gör det vänligt. Vad tappar du för det? Angripare kommer att attackera oavsett vad du gör, och om du gör ditt API lätt att använda kommer någon att komma med något du aldrig tänkt på och göra din server ännu större än du någonsin föreställt dig att det kunde vara. Vad kan göras av en klient som pratar med både ditt API och några andra? Vilka otaliga möjligheter finns det, och kommer det verkligen att skada dig att tillåta dem?

netikras
2017-02-13 13:28:24 UTC
view on stackexchange narkive permalink

Jag skulle inte göra det. Det betyder i allmänhet att du skapar din egen standard, vilket får:

  1. att ditt API är förutsägbart efter att du har gjort en karta över dina http-svar till deras faktiska betydelse. Att ändra HTTP-svar kan fungera på vissa "hackare" som skulle ge upp efter några försök, men det kommer inte att göra på andra, mer bestämda. Vill du skydda ditt API från endast tidigare typ, dvs. 11-åringar? Jag tror inte det.

  2. en hel del förvirring för utvecklare och förmodligen testare, särskilt de som används för att fungera enligt globala standarder.

  3. Välj något annat sätt. Det finns definitivt några. Jag har kämpat med samma headscratcher själv i några veckor nyligen och kom på minst två mer eller mindre tillförlitliga sätt att uppnå önskade begränsningar [kan dock inte lägga upp dem här].

  4. ol >

    Det finns definitivt bättre och MYCKET effektivare sätt att få det du vill ha. Försök att titta på ditt API från en annan vinkel ... Om du var en hackare och ditt liv var beroende av att hacka det API: t - vad skulle du göra för att lyckas? Vad ska hända för att du ska bli frustrerad i dina försök att bryta det?

james
2017-02-13 05:07:28 UTC
view on stackexchange narkive permalink

En bra anledning att inte göra detta, särskilt för en mobilapp, är att det är mycket troligt att din app redan pratar med din server via flera proxyservrar, till exempel i telefonföretaget. De flesta stora företag använder proxyservrar i sitt nätverk för att försöka skydda sina system från skadligt innehåll, och många telefonföretag minskar kvaliteten på video eller bilder under transport. Det gör också att användningen av de olika systembiblioteken för HTTP på din plattform är värdelös för dig. Ett tillvägagångssätt som ofta används är att härleda någon nyckel eller token från information som det är osannolikt att användaren vill dela, till exempel hashing deras namnadress och kreditkortsinformation. På det här sättet, även om din app är hackad, kommer människor att vara försiktiga med att ge den information som krävs till ett slumpmässigt program som de laddade ner, vilket begränsar delningsförmågan för alla bevisade attacker.

Jon Hanna
2017-02-13 07:57:07 UTC
view on stackexchange narkive permalink

Generellt sett är det ingen bra idé.

Jag använde detta mycket riktat en gång för att få en bra effekt när en kunds webbplats användes av en stulen kreditkortsvaskring. Det fanns några identifierande funktioner som bara delades av bedrägliga transaktioner så snarare än att hövligt vägra dem skulle jag få webbplatsen att fördröja svaret med några minuter (ingen gillar en webbplats som tar några minuter att göra något) och sedan returnera en 500 med webbplatsens standard "ledsen, det är inte du, det är jag" -meddelandet för serverfel (det loggade också information för att vidarebefordra till brottsbekämpning). Vi hade tre försök på transaktioner som fick detta spelande svar och sedan aldrig hört talas om dem igen.

Det var dock:

  1. Som svar på något vi visste var en attack snarare än att vara motbjudande för användare som har problem.
  2. Inte ett försvar mot en attack mot säkerheten i själva protokollet, utan på den mänskliga nivån ovanför.
  3. Förklarligt genom andra förklaringar , dvs vi låtsades ha en riktigt sugig webbplats i en situation där det var troligt (det finns många sura webbplatser där ute) och vi var inte ett specifikt mål (perps skulle gå vidare till någon annan).

Användare som har problem ska hjälpas, inte missbrukas. "Jag kan inte göra det för att du inte är rätt auktoriserad" vägrar att göra något på ett bra sätt. "Jag kan inte göra det för att du måste använda en proxy" när någon inte behöver använda en proxy är kränkande. Att medvetet vara ohjälpsam är bara lämpligt när du vet att du attackeras och då ska det inte se ut som ett uppenbart falskt meddelande eller om du inte har dolt någonting (potentiellt har du faktiskt avslöjat något om samma falska status inte används för varje klientfel).

Med detta sagt är det lämpligt att vidta åtgärder för att status inte ska läcka information. T.ex. det är acceptabelt (beskrivs som sådant i standarderna) för / admin / till 404 men det skulle 200 i ett annat fall (auktoriserad användare, tillåtna klient-IP-adresser etc.) Alternativt om / medlemmar / min-profil kommer 200 för en auktoriserad användare och 403 eller 401 annars, om / medlemmar / fdsasafdasfwefaxc skulle 404 för en auktoriserad användare är det en bra idé att det till 403 eller 401 för den obehöriga användaren. Detta är inte så mycket säkerhet genom dunkel som att överväga vilka URI: er som relaterar till resurser som en av de bitar av information som skyddas.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...