Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: C++ ja MySQL-turvallisuus

punppis [07.05.2009 18:09:13]

#

Pistetään tähän alkuun nyt että ohjelmointiosaamiseni on 99% PHP:ta, joten en tiedä muistin lukemisesta saati verkkoliikenteestä juuri mitään.

Mieleeni kuitenkin juolahti, että kun kerran peleihin tehdään kaikenmaailman crackeja ja cheatteja, niin miten ihmeessä softan tekijät onnistuvat suojaamaan tietokantayhteydet niin hyvin.

Otetaan esimerkkinä joku MMORPG-peli. Käyttäjä avaa pelin ja peli tarkistaa tunnukset ja yhdistää sitten serverille. Eikös nuo tietokannan kirjautumistiedot ja osoitteet sitten tarvi olla jossain muistissa? Ja eikös tuo muistin lukeminen ole taas suhteellisen helppoa hommaa?

Ensimmäisenä tuli tietysti mieleeni, että nuo tiedot on jotenkin salattu, mutta miksei sitten samalla tavalla voida salata esim. pelaajan koordinaatteja, ja tehdä esim. wallhackista mahdotonta?

Antti Laaksonen [07.05.2009 18:39:49]

#

Ohjelma voi lähettää ja saada tietoja palvelimelta, vaikka sen tiedossa ei olisi palvelimella olevan tietokannan salasanaa. Esim. pystyt katsomaan selaimellasi Ohjelmointiputkan sivuja ja lähettämään viestejä, vaikka selaimeesi ei luultavasti ole tallennettuna Ohjelmointiputkan tietokannan salasanaa.

Metabolix [07.05.2009 18:47:47]

#

Asia on, kuten Antti sanoi. Homman jujuhan on siinä, että mitään arkaluontoista dataa ei lähetetä käyttäjälle, vaan käyttäjä lähettää salaiset tietonsa palvelimelle. Jos jatketaan Ohjelmointiputka-esimerkkiä, niin kun kirjaudut tänne sisään, salasanasi lähetetään palvelimelle ja palvelin tarkistaa, onko se oikein. Toisin päin koko tarkistuksessa ei olisi mitään järkeä, koska selain voisi aina vain ilmoittaa, että "oikein meni".

Alkuperäinen tekstisi meni siis tässä kohdin väärin: Todellisuudessa peli ensin yhdistää palvelimelle ja lähettää sinne käyttäjätiedot. Jos tiedot ovat oikein, peli voi pyytää palvelimelta jotain konkreettista, esimerkiksi listan käytössä olevista pelihahmoista. Jos taas tiedot ovat väärin, palvelin ilmoittaa asiasta ja katkaisee yhteyden.

punppis [07.05.2009 19:19:39]

#

Ajattelin jotenkin C++:n kohdalla, että itse se peli tarkastaisi kaiken tuon. Noh, kiitos nyt vastauksista :P

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta