Viikkotehtävä 8 palautus - Luento 17
- Luentotaltiointi
- Viikkotehtävä 8
- Google App Engine
- WSGI (Python Web Server Gateway Interface)
- Python-pohjaisia WWW-kehitysympäristöjä
- Tietoturva
Luentotaltiointi
- sovellukset17.wmv 106M
- sovellukset17.avi 207M
- sovellukset17.mp3 30M
Viikkotehtävä 8
Google App Engine
Google App Engine mahdollistaa web-sovellusten suorittamisen Googlen palvelimilla.
Google App Engine tukee useita kieliä ja erityisesti Pythonia.
Sovellukset voivat ilmaiseksi käyttää 500Mt levytilaa ja prosessoriaikaa ja kaistaa viiden miljoonan sivulatauksen edestä kuukaudessa.
WSGI (Python Web Server Gateway Interface)
WSGI määrittelee universaalin rajapinnan www-palvelimien ja WWW-sovellusten välille.
Python-pohjaisia WWW-kehitysympäristöjä
Tietoturva
Muutamia käytännön perustietoturvapointteja:
- Lomakkeelle syötetyt tiedot
- Älä upota koskaan suoraan sivulle!
- Enkoodaa erikoismerkit. Jos käytät domia niin ei ongelmia.
- Tarkista myös esim. ettei JavaScriptiä voida upottaa sivullesi.
- SQL Injection
- Ulkopuolisten ohjelmien suorittaminen (exec) - varo!
- Älä luota JavaScript-validointiin.
- Älä upota koskaan suoraan sivulle!
- Käyttäjätunnistus
- Kannattaa tehdä keskitysti esim. template-käsittelijässä, jolloin ei ole vaaraa, että joltain sivulta jää tekemättä.
- Sessiotunniste voidaan kaapata verkkoliikenteestä! Yhteys on salattava ennenkuin todella voidaan luottaa käyttäjän tunnistamiseen.
- Salasanasuojaus
- Turvaton yksistään!
- Palvelimen tietoturva
- Rajoitetaan palvelintunnuksen kirjoitus- ja suoritusoikeudet tiettyihin hakemistoihin.
- Rajoitetaan palvelimen tiettyihin hakemistoihin pääsyä esim. IP:n perusteella
- Kaikki palvelimen toimintaan ja salasanoihin liittyvät jutut kannattaa sijoittaa sellaiseen hakemistoon mihin webin käyttäjällä (palvelintunnuksella) ei ole oikeuksia.
- Pythonin debug-tila voi kertoa kriittisiä palvelun kannalta olennaisia toimintoja! Kytke se pois, kun kehitystyö on valmis. Parasta olisi, jos käytössä on erillinen kehityspalvelin ja toinen tuotantokäytössä oleva.
- HTTPS
- Palvelin hoitaa, kun sopivat asetukset on kunnossa
- Apache SSL/TLS Encryption
- Tietokannat
- Tietokantayhteyden salaus
- Tietokannan käyttöoikeudet
- Salasanojen suojaus, esim. md5 tai sha1.
- Parasta on kuitenkin salata SSL:llä tms. kaikkien koneiden väliset verkkoyhteydet.
Käyttäjien kommentit