Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: teele - 04.09.19 - klo:11.27

Otsikko: [ ratkaistu ] php-sivun lähdetietojen piilottaminen wgetin näkyviltä
Kirjoitti: teele - 04.09.19 - klo:11.27
Jos halutaan tehdä painonhallintasivusto jossa lähtötietoina on kunkin käyttäjän nimi, ikä ja sitten punnitustuloksia päivittäispunnituksista, niin miten voidaan piilottaa muiden käyttäjien tiedot kaikilta muilta ja erityisesti ulkopuolisilta.

Lähtötietotiedoston on ajateltu olevan muotoa

nimi   ikä  kg kg kg kg kg kg ....
nimi   ikä  kg kg kg kg kg kg .....
nimi   ikä  kg kg kg kg kg kg .....
.
.


Käyttäjät näkevät omat tietonsa ja oman painonsa kehittymisen verrattuna painojen kehittymisen keskiarvoon. Laskenta tehdään ja tiedot näytetään php:n avulla. Php-koodi ja tietorivit sisältävä tiedosto sijaitsevat DocumentRoot -määrittelyn mukaisessa hakemistossa, jonne www-datalla pitää tietysti olla luku- ja kirjoitusoikeudet tulosten laskemista ja uusien punnitustietojen lisäämistä varten.

Mutta kaikki aineisto on kenen tahansa haettavissa wgetin avulla, mikä ei ole toivottava piirre. Miten php-lähdetekstin ja kerätyt tiedot voisi suojata niin, että sivut toimisivat kuitenkin selaimella ja www-data pystyisi lukemaan ja kirjoittamaan hakemistoon.

Jos www_datalla on lukuoikeus, tarkoittaako se aina sitä, että se myös toimittaa lukemansa tiedot sen enempää kyselemättä esimerkiksi wgetille tai voisiko tiedosto-oikeuksia muuttamalla turvata lähdetiedot tai ratkeaisiko asia .htaccess -säädöillä?
Otsikko: Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
Kirjoitti: _Pete_ - 04.09.19 - klo:11.54
Yksi tapa on pistää tiedot tietokantaan.
Otsikko: Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
Kirjoitti: nm - 04.09.19 - klo:12.44
Käyttäjät näkevät omat tietonsa ja oman painonsa kehittymisen verrattuna painojen kehittymisen keskiarvoon. Laskenta tehdään ja tiedot näytetään php:n avulla. Php-koodi ja tietorivit sisältävä tiedosto sijaitsevat DocumentRoot -määrittelyn mukaisessa hakemistossa, jonne www-datalla pitää tietysti olla luku- ja kirjoitusoikeudet tulosten laskemista ja uusien punnitustietojen lisäämistä varten.

Kannattaa sijoittaa salassa pidettävä datatiedosto johonkin muualle kuin DocumentRootin alle. Toki myös .htaccess-tiedostolla tai muulla web-palvelinohjelmiston konfiguraatiolla voi piilottaa tiedostoja, mutta on selkeämpää ja helpompaa siirtää ne kokonaan muualle. Datakansioon ja -tiedostoihin tarvitsee vain lisätä pääsyoikeudet www-datalle, niin pystyt lukemaan tietoja PHP-ohjelmassa.

PHP-skriptit sen sijaan sijoitetaan tavallisesti web-palvelinohjelmiston (kuten Apachen) DocumentRootin tai erikseen konfiguroidun hakemiston alle. Apachen mod_php estää .php-tiedostojen sisällön esittämisen julkisesti, vaan sen sijaan suorittaa ohjelman, joka sitten tuottaa julkisesti näkyvän HTML-dokumentin.
Otsikko: Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
Kirjoitti: teele - 04.09.19 - klo:12.56

Eli jos annan tietoihin luku- ja kirjoitusoikeudet erillisissä datakansioissa www-datalle, ne eivät tule kaikkien saataville wgetillä.

Tällöin oikeuksia ei ole ulkopuolisilla, mutta ymmärtääkö Apache olla toimittamatta tietoja eteen päin, jos se itse niihin pääsee käsiksi.Pitääkö Apachessa laittaa joku säätö päälle tällaisen toivottavan tilanteen aikaan saamiseksi.
Otsikko: Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
Kirjoitti: _Pete_ - 04.09.19 - klo:13.04

Eli jos annan tietoihin luku- ja kirjoitusoikeudet erillisissä datakansioissa www-datalle, ne eivät tule kaikkien saataville wgetillä.

Tällöin oikeuksia ei ole ulkopuolisilla, mutta ymmärtääkö Apache olla toimittamatta tietoja eteen päin, jos se itse niihin pääsee käsiksi.Pitääkö Apachessa laittaa joku säätö päälle tällaisen toivottavan tilanteen aikaan saamiseksi.

Apache ei tosiaankaan tarjoile mitään tiedostoja asetetun www-root kansion ulkopuolelta joten jos siinä ajettavalla php koodilla on lukuoikeus tiedostoon niin php pystyy sen lukemaan vaikka onkinin www-root ulkopuolella.
Otsikko: Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
Kirjoitti: matsukan - 05.09.19 - klo:09.49
Mielestäni  apache ei näytä/jaa oletuksena  . eli dot alkuisia tiedostoja/hakemistoja .

Ja käytä jotakin tietokantaa ....
Otsikko: Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
Kirjoitti: teele - 23.10.19 - klo:11.28
Tilanne on vieläkin vähän epäselvä. Jos yritän siirtää wgetillä php-ohjelmatiedoston, siitä tulee vain pieni osa. Tämä on hyvä, koska ilmeiseti ulkopuolinen ei siten voi saada ainakaan kovin paljon vääränlaista tietoa.

Koodia: [Valitse]
wget http://omapalvelin.fi/omakoodi.php
--2019-10-23 11:06:55--  http://omapalvelin.fi/omakoodi.php
Selvitetään osoitetta omapalvelin.fi (omapalvelin.fi)... xxx.xxx.xxx.xxx
Yhdistetään palvelimeen omapalveli.fi (omapalvelin.fi)|xxx.xxx.xxx.xxx|:80... yhdistetty.
HTTP-pyyntö lähetetty, odotetaan vastausta... 200 OK
Pituus: 324 [text/html]
Tallennetaan kohteeseen ”omakoodi.php”

omakoodi.php       100%[==================================>]     324  --.-KB/s    in 0s     

2019-10-23 11:06:56 (10,7 MB/s) - ”omakoodi” tallennettu [324/324]


cat omakoodi.php
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html>
<head>
<title> oma-sivu </title>
</head>

<body>

hetkinen, avataan omia tiedostoja .... <br/><br/>Tiedot tallennettu onnistuneesti <br/><br/> Kun kaikki valinnat
          on tallennettu, tulos voidaan katsoa Tulokset-sivulta  <br/><br/>




Mutta jos pyydetään samalla tavalla tekstitiedostoa, joka on kuitenkin php-loppuinen, tiedosto siirtyy kokonaan pyytäjälle.

Koodia: [Valitse]
wget http://omapalvelin.fi/.mydata.php
--2019-10-23 11:03:40--  http://omapalvelin.fi/.mydata.php
Selvitetään osoitetta omapalvelin.fi (omapalvelin.fi)... xxx.xxx.xxx.xxx
Yhdistetään palvelimeen omapalvelin.fi (omapalvelin.fi)|xxx.xxx.xxx.xxx|:80... yhdistetty.
HTTP-pyyntö lähetetty, odotetaan vastausta... 200 OK
Pituus: 178 [text/html]
Tallennetaan kohteeseen ”.mydata.php”

.mydata.php              100%[==================================>]     178  --.-KB/s    in 0s     

2019-10-23 11:03:40 (1,90 MB/s) - ”.mydata.php” tallennettu [178/178]

cat .mydata.php

<html>
<body>
print('print-tekstiä alussa <br/>');
echo'(echo-tekstiä alussa <br/>');

tavallista tekstiä <br/>
/*
kommentoitua tekstiä <br/>
*/
<body/>
<html/>


Tiedosto on nimetty . -alkuiseksi eikä se näy ls -komenolla suoraan, mutta siirtyy siitä huolimatta ja tulostuu kotikoneella, kun muistaa laittaa cat -komennossa pisteen eteen nimeen.

Eli pääosa koodista näyttää pysyvän siellä, mihin se on tarkoitettukin, mutta miten saisi kaikki datat piiloon ulkopuolisilta.
Otsikko: Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
Kirjoitti: matsukan - 23.10.19 - klo:12.17

Miksi et käytä tietokantaa tähän ?
Otsikko: Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
Kirjoitti: Tomin - 23.10.19 - klo:18.32
Vaihtoehdot:
1) älä tallenna tietoa hakemistoon, jota voi lukea Apachella, tai
2) säädä Apachea niin, että esimerkiksi pisteellä alkavia tiedostoja ei saa lukea.

http://httpd.apache.org/docs/2.4/mod/core.html#directory
http://httpd.apache.org/docs/2.4/mod/core.html#files
http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require
Otsikko: Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
Kirjoitti: teele - 06.11.19 - klo:21.29

Väliaikaisratkaisuna käytän tiedostoa, joka sisältää tiedot php-muodossa, jolloin apache ei lähetä sen koodiosuutta.

Tietokanta olisi varmasti myöskin hyvä ratkaisua, mutta en vielä osaa käyttää mysql-tietokantaa. Ehkä jostain löytyy aloittelijaohjeet Ubuntun mysql-käytöstä, kunhan ehdin niitä etsimään.