, gevoelige gegevens: om ervoor te zorgen dat de toepassing van,,,,,,,,,, 97, aandelen, 17,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts 3 dollar.Niet' niet missen. En in de voorgaande artikelen, ik, ik zal je leren hoe je je beschermen, de server van de aanval en kwaadaardige software.Dit deel zal zich volledig richten op de veiligheid van de derde laag... Uw aanvraag zelf.Dus hier is, zal ik het je vertellen, gebruik je bescherming van toepassing, ter voorkoming van illegale invasie en aanvallen, met behulp van een databank, en wanneer de communicatie met de database, als je data is veilig, nog de volgende punten onthouden:,, ontsnappen altijd aan de problemen, om te voorkomen dat de aanvallers SQL injectie je vlucht, voor alle gebruikers van de input, dus ze kan niet van SQL je aanvraag (bijvoorbeeld in een log).In een groot aantal van de database van chauffeurs, voor alle talen, er is een mogelijkheid van de inbreng van gebruikers.Zoals in de Node.js knooppunten van mysql, in plaats van je vraag is deze:,, in verband met de vraag van gebruikers ('select * naam = "+ gebruikersnaam", "en de code =" + wachtwoord ";", functionele (UH, rij en een) (,, kan je auto om te voorkomen Dat hun gebruik van deze taal: in verband met de vraag, en'select * * * * * * * (naam van de gebruiker =?En het wachtwoord =?[de gebruikersnaam en wachtwoord] functie (vergissing, oké, gebied) {, uit een reeks variabelen die als een secundaire parameters, worden opgenomen in de methode van de vraag, de vraag wat vraagtekens plaats en wordt automatisch te ontsnappen.Ook in het gebruik van BOB PHP voorbereide verklaringen: verklaring = dollar, met een diameter van - > voorbereiding ("select * van de gebruikers waar naam =?En het wachtwoord =?('); de dollar steun - > bindparam (1 dollar, gebruikersnaam); de marge - > bindparam (2 dollar, wachtwoord); de marge - > execute (); de inhoud van het vertrouwen, en nooit uit de database, zelfs als je te ontsnappen van je vraag, Je weet het nooit in je aanvraag fout heb, kwaadwillige code door.Als jullie bereid zijn je aanvraag van de manier waarop je altijd dat de inhoud van een databank is veilig, dus je gebruiker is gevaarlijk.Deze code is gevallen, als de resultaten:, =% (dollar mysqli - > vraag ('select * gebruikersnaam = ".Ik mysqli - > escape_string ($gebruikersnaam). "; ')) {als ($rij = $resultaten > fetch_assoc ()) {als ($resultaten = $mysqli - > vraag (* * * * * * * gegevens in te'select =".Ik rij 'id "] [."; ") {...}, niet veilig.Als er iets misgaat, id, de gebruikers van de code bevat een aantal SQL, dan heb je problemen.En $lijn [id '], ook moet worden vermeden, escape_string (), methoden, zoals:,, als de resultaten = $(dollar mysqli - > vraag ('select * gebruikersnaam = ".Ik mysqli - > escape_string ($gebruikersnaam). "; ')) {als ($rij = $resultaten > fetch_assoc ()) {als ($resultaten = $mysqli - > vraag (* * * * * * * gegevens in te'select =".Ik mysqli - > escape_string ($Bank [id ']). ";") {...- wanneer het gebruik in een zout, nu stel je dit eens: een geniale Hacker je zorgvuldig door de veiligheid van het ontwerp, en in je database op hun handen te krijgen.Toen ze begon met brute kracht je wachtwoord voor alle gebruikers.Als je een zout, je kan rustig slapen, en ervoor te zorgen dat de gebruikers van de gegevens van je, ze is veilig.Want als de aanvaller in hun kelder is een quantum computer, het aantal te nemen en ze in een code, een zout betekent dat je in een willekeurig karakter (aanvullende hasj voor deze tekens is wat zout) en de opslag van hun wachtwoorden.Je denkt dat het niet veilig is, omdat ze weten dat zout, als ze toegang krijgen tot de databank.Maar omdat het zout is, elke gebruiker van verschillende, maar twee mensen met dezelfde code - waarde zal anders zijn.Dit dwingt de aanvaller één tegen ze, en dit maakt het zeer tijdrovend en meestal geen tijd te verliezen.Dit betekent ook dat de aanvaller niet gebruiken of woordenboeken achter de Regenboog tabel wachtwoord, wachtwoord: Node.js, zouten, knooppunt van mysql, eerst moet je door het zout.Bijvoorbeeld, kan je het wachtwoord. Randombytes (,,, de VAR - code): = nodig hebben ('crypto "); dit moet,, /geregistreerde gebruikers van de gegevens op verzoek, in plaats van het toevoegen aan de database (*) /code. Randombytes (16, functionele (E, zout) (,, deze functie zal gooien een fout in het kader van het dossier, als," niet voldoende is, de entropie van sterke gecodeerde gegevens ".In dat geval moet je een keer proberen, of met een wachtwoord. Pseudorandombytes (), die de niet - vertrouwelijke sterke willekeurig bytes, maar aangezien dit alleen af en toe, zodat we het kunnen gebruiken:,, als (e) {zout = wachtwoord. Pseudorandombytes (16);}, nu laten. Hebben we De gegevens toe te voegen.Om het eenvoudig te houden, zal ik alleen met behulp van een gebruikersnaam en wachtwoord en zout, in dit geval, de * * * * * * *, /gebruikersnaam en wachtwoord moeten worden gewonnen om lichaam * * * * * * * /var = code hasj. Createhash ('sha-256 "). De actualisering (code + zout. Tostring ()). - ('hex SQL (");'insert in waarde. De gebruikers (???????,???????,??????????????; "[] gebruikersnaam en wachtwoord, zout, functionele (UH, rij en een) {/* de logica van je andere aanvragen, wat na het openen van de gegevens in de database * /gebruiker});});,, als je wilt inloggen op de gebruikers, moet je uit de database van zout en controleer het wachtwoord: de vraag van de gebruikers, de naam, de SQL (='select zout?[naam]; ", (- lijn en het gebied van de functie) {als (rows.length < 1) {* *) de gebruikers niet bestaan of {VAR - = het wachtwoord. Createhash ('sha-256"). De actualisering (code + Bank [0]. Zout) spijsvertering ('hex "SQL.); (de naam = 1'select?En het wachtwoord =?; "[] (naam, functie, uh, rij en een) {als (rows.length < 1) {/* * /* *} andere fout wachtwoord {}} wachtwoord);}});,, het is goed.Laten we nu eens kijken hoe dit te doen, gebruik maken van de persoonlijke beschermingsmiddelen, gezouten, wachtwoord in. Php PHP is heel eenvoudig, want in functie, password_hash () (), password_verify, automatisch gebruik van zout en - functies met het terug, dus je moet niet eens in de database (of een ander gebied In de lijst van de situatie,.).Het ziet er als volgt uit:,, voor de dollar = dbh - > voor de gebruikers ("ingevoegd (???????,??????????????('); de dollar steun - > bindparam (1), de gebruikersnaam wachtwoord *); - de functies en de verhoging van de willekeurige zout automatische * /dollar steun - > bindparam (2, password_hash ($code); - steun - > het uitvoeren van inspecties ();,, - je moet slaan, telefoon, password_verify ().Het automatisch van het zout van hasj dus je moet je de database van hasj en te converteren.De code vereist, zijn als volgt:,, voor de dollar = dbh - > voor de gebruikers ("kiezen code naam =?('); de dollar steun - > bindparam (1 dollar, gebruikersnaam); de marge - > het uitvoeren van (de); = dollar steun - > toegang (BOB: fetch_assoc); als () {* * * * * * * * - wachtwoord met als (password_verify ($/'password wachtwoord dollar. Bank [)) {/* de code./* * /}} {*} andere gebruikers niet bestaan, de opheffing van de voorrechten, maar als je ze niet nodig, dit is een van de beste verdediging, kun je gebruiken om je te beschermen van de machine, dus je klant.Je moet de verbetering van de autoriteit een paar dingen, voornamelijk naar de haven van minder dan 1024 of het systeem de dossiers.Maar je moet niet rennen als je een aanvraag niet nodig, maar in het geval van de aanvaller zag een fout in je code, om hen in staat te stellen op je server op commando, als de code is als bevoorrechte gebruikers, het spel.De aanvallers kunnen doen wat ze willen, en waarschijnlijk voor je doen.Dit is de reden waarom je zo snel mogelijk afzien van een voorrecht.In de Node.js ziet het er zo uit:,, var. Toepassing = http. Createserver (...);...Aanvragen. Luister (80); ///////80 van haven luisteren, moet je je aanvraag van de wortel van gebruikers van het proces. Setuid ('app_user ") vallen; ///////de voorrechten, de overgang naar een niet - de wortel van de gebruiker zoals platform, helaas,,, - proces. Setuid (), de functie zal veranderen. Over de identiteit van de gebruiker kan dit proces is een digitale id of de gebruiker string (in het tweede geval, deze functie zal het blok en de toegang van de gebruiker id).De gebruiker moet niet alleen toegang tot de voorrechten, de toepassing van specifieke documenten, beperking van de machine in je andere risico 's voor de aanvallers,., op een andere manier: het gebruik van, authbind, zei iemand (bijvoorbeeld in deze opmerkingen laat wortel), namelijk de oplossing is niet perfect en ze willen gebruiken, authbind, in plaats daarvan.Dit is jouw beslissing, je gebruikt, afhankelijk van je worden.Maar hoe dan ook, authbind, het is een bevel, speciaal voor dit doel is - waardoor je aanvraag gebonden aan de haven van minder dan 1024 geen wortel toestemming (dus bestrijkt slechts het geval).Het moet gebruiken, in de eerste plaats het creëren van een dossier, /ETC /authbind /byport /haven,,, export, is je te binden aan je gebruik zal maken van de haven van gebruikers kunnen uitvoeren, de uitvoering van uw aanvraag.En over te schakelen op je klanten en een begin te maken met de toepassing van deze authbind knooppunten, zoals: yourapp.js, zoals deze, of van oorsprong:,, sous C authbind - toepassing van de youruser. Js, zodat je kunt voldoen aan het uiteindelijke doel en de oplossing van problemen, maar nu gebruiken, authbind, Integendeel, als dat is wat je wilt, samengevat,.,, dus ik hoop dat je wat geleerd in nieuwe technologie voor het gevoelige gegevens in deze twee artikelen van de baan.In het eerste artikel, we beginnen te leren hoe we op de server van de bescherming van gegevens, het kiezen van de juiste server leveranciers, de vernieuwing van ons systeem, de bescherming van havens en het gebruik van anti - virus.In dit artikel, dat het einde van onze discussies, door middel van passende gegevensbank, veiligheid, de bescherming van onze aanvragen met behulp van het wachtwoord bescherming, en van de rechten van de gebruiker, op elk moment. Delen van hun eigen veiligheid, dat in de toelichting, dank je.
De beste praktijken van gevoelige gegevens: ervoor zorgen dat uw aanvraag van de beste praktijken
Previous:Van junior, Senior
Next Page:In artikel