Kirjoittaja Aihe: [ ratkaistu ] php-sivun lähdetietojen piilottaminen wgetin näkyviltä  (Luettu 4877 kertaa)

teele

  • Käyttäjä
  • Viestejä: 851
    • Profiili
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ä?
« Viimeksi muokattu: 06.11.19 - klo:21.30 kirjoittanut teele »

_Pete_

  • Käyttäjä
  • Viestejä: 1845
  • Fufufuuffuuu
    • Profiili
Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
« Vastaus #1 : 04.09.19 - klo:11.54 »
Yksi tapa on pistää tiedot tietokantaan.

nm

  • Käyttäjä
  • Viestejä: 16425
    • Profiili
Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
« Vastaus #2 : 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.

teele

  • Käyttäjä
  • Viestejä: 851
    • Profiili
Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
« Vastaus #3 : 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.

_Pete_

  • Käyttäjä
  • Viestejä: 1845
  • Fufufuuffuuu
    • Profiili
Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
« Vastaus #4 : 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.

matsukan

  • Käyttäjä
  • Viestejä: 2152
    • Profiili
Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
« Vastaus #5 : 05.09.19 - klo:09.49 »
Mielestäni  apache ei näytä/jaa oletuksena  . eli dot alkuisia tiedostoja/hakemistoja .

Ja käytä jotakin tietokantaa ....
Pohjois-pohjanmaa
-- motto:  backupin tarve huomataan aina liian myöhään

teele

  • Käyttäjä
  • Viestejä: 851
    • Profiili
Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
« Vastaus #6 : 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.
« Viimeksi muokattu: 23.10.19 - klo:11.31 kirjoittanut teele »

matsukan

  • Käyttäjä
  • Viestejä: 2152
    • Profiili
Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
« Vastaus #7 : 23.10.19 - klo:12.17 »

Miksi et käytä tietokantaa tähän ?
Pohjois-pohjanmaa
-- motto:  backupin tarve huomataan aina liian myöhään

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
« Vastaus #8 : 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
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

teele

  • Käyttäjä
  • Viestejä: 851
    • Profiili
Vs: php-sivun lähdetietojen piilottaminen wgetin näkyviltä
« Vastaus #9 : 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.