- Telekom otthoni szolgáltatások (TV, internet, telefon)
- ASUS routerek
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Adobe Illustrator kérdések
- Linux - haladóknak
- Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
- Célkeresztben az OnlyFans, amiért pornót nézhetnek a gyerekek
- Linux kezdőknek
- PDF topik
- Milyen NAS-t vegyek?
Aktív témák
-
Forest_roby
őstag
Hi! /megint én
hát nem fog ez olyan könnyen menni! : (
A .htaccess file szerkesztésével meggyűlt a bajom - mindent írtak a tutorban csak pont azt nem, hogy-hogyan lehet csak php -val megnyitható mappát létrehozni ( ...vagy vmi ilyesmi... ).
Maradta a chmod 700 mappa. ez jól is működött:
Forbidden
You don't have permission to access /proba/proba.txt on this server.
Apache/2.2.3 (Debian) PHP/4.4.4-8 Server at localhost Port 80
de... csináltam egy másik mappát /var/www/view/ és bele egy view.php a fentebb említett scriptet beílesztettem a megfelelő modosításokkal és megpróbáltam vele megnyitni a beállított filet. erre:
<br />
<b>Warning</b>: filesize() [<a href='function.filesize'>function.filesize</a>: Stat failed for /var/www/proba/proba.txt (errno=13 - Permission denied) in <b>/var/www/view/view.php</b> on line <b>13</b><br />
<br />
...
..
.
Mit csináltam rosszúl?
-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
RedAnt
aktív tag
válasz Forest_roby #801 üzenetére
nem tudtam végigkövetni, konkrétan mi volt a probléma eredete, de azt megjegyezném, hogy a szerveren a php szkripteket általában egy www_data vagy hasonló nevű user futtatja (nem te), tehát ha chmod-dal letiltasz ''másoknak'' elérést valamihez, azt a php ugyanúgy nem fogja látni, mint ha te akarnád a böngésződből megnyitni.
[Szerkesztve]╚╦╦╦
-
Forest_roby
őstag
akkor mégiscsak vissza kell térnem a .htaccess filehoz?
hogy mit szeretnék?
Első lépésként el szeretném érni, hogy egy mappából csak php-vel lehesen fileokat olvasni, semmilyen más módon....
Ha ez megvan akkor jöhet egy php-mysql -es dolog. Felhasználónév/jelszó belépni egy dinamikus oldalra ami mindössze anyiból áll, hogy az épp említett mappában lévő fileokat kilistázza és melléjük nyom egy linket, amivel le tudom tölteni... / ezmár a végcél /-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
RedAnt
aktív tag
válasz Forest_roby #803 üzenetére
Hozzáférsz a szerveren a webes mappán kívüli helyekhez? Mert ha igen akkor legegyszerűbb azokba tenni amiket nem akarod hogy kívülről láthatók legyenek.
Ha csak ahhoz a könyvtárhoz van hozzáférésed ami egyben a webes gyökérkönyvtárad, akkor igen, az apache-nak kell megmondani, hogy bizonyos fájl-lekéréseket ne szolgáljon ki.
Egy alkönyvtárt pl. kompletten letilthatsz ha teszel bele egy .htaccess fájlt a következő tartalommal:
Order deny, allow
Deny from all
Ezután pl. egy szinttel feljebb levő könyvtárban levő php-val el tudod érni a letiltott könyvtár fájljait mondjuk fopen-nel, de ha közvetlenül akarják elérni őket böngészőben, 403-at kapnak.
[Szerkesztve]╚╦╦╦
-
Forest_roby
őstag
Az itteni gépen nyilván tudnám másik mappába is tenni a dolgokat, de az uw -n ez nem megoldható, szóval marad a 2. megoldás.
Kipróbáltam és simán beengedett az oldalra. : |
Fentebb említette Tyrael, hogy engedélyezni kell ezt a .htaccess file-t vmilyen másik fileban ( httpd.conf ), megkerestem ezt a filet (/etc/apach2/httpd.conf) és tök üres volt.
Hogy kell engedélyezni?
[Szerkesztve]-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
RedAnt
aktív tag
válasz Forest_roby #805 üzenetére
uw-n tudtommal nem használható .htaccess.
A webszerver közös beállításai vannak az említett httpd.conf fájlban (apache2-től kicsit máshogy van) Itt lehet beállítani hogy pl. miket lehessen a .htaccess fájlokkal engedélyezni/tiltani. De uw-n kötve hiszem hogy ezen változtathatsz...
Úgyhogy vagy keresel egy normális szolgáltatót, vagy jól eldugod az illető könyvtárat╚╦╦╦
-
RedAnt
aktív tag
válasz Forest_roby #807 üzenetére
extra.hu állítólag egész jó, ott talán engednek .htaccess-t is, egy próbát megér. De nem tudok sokat mondani ingyen tárhelyekről, szerencsére nem szokott rajtuk dolgom lenni...
╚╦╦╦
-
Forest_roby
őstag
Hi!
köszi a segítégeket, hálás vagyok érte!
mégvalami:
debian:~# /etc/init.d/apache2 reload
Syntax error on line 1 of /etc/apache2/httpd.conf:
AllowOverride not allowed here
failed!
debian:~# cat /etc/apache2/httpd.conf
AllowOverride AuthConfig
debian:~#
mit írtam el?
-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
Forest_roby
őstag
válasz Forest_roby #809 üzenetére
na, csak megtaláltam a megoldást! ( google code search )
debian:~# cat /etc/apache2/httpd.conf
<Directory /var/www/proba>
order allow,deny
AllowOverride AuthConfig
allow from all
Options None
</Directory>
debian:~# /etc/init.d/apache2 reload
Reloading web server config...1439
.
debian:~#
így műxik, a php-vel való megnyitás is!
Köszi mindenkinek, hogy idáig elnavigáltatok!-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
Tyrael
senior tag
válasz Forest_roby #801 üzenetére
akkor ne 700-al probald, hanem 750-nel.
ja, latom kozben megoldodott...
Tyrael
[Szerkesztve] -
Forest_roby
őstag
750 -nel se működik!
mod: pedig jó lenne ha igy is meglehetne csinálni, mert nehéz olyan web space -t találni, ami elég nagy és engedélyezve van a .htaccess ( és ingyenes )
[Szerkesztve]-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
RedAnt
aktív tag
válasz Forest_roby #812 üzenetére
A három számból a php-t futtató felhasználóra a harmadik vonatkozik, hacsak nincs egy csoportban veled. Ha így lenne, akkor sem mennél sokra vele, mert akkor böngészőn keresztül ugyanúgy el lehetne érni Mivel itt 0 van, nem kap semmilyen jogosultságot a fájlon, így nem nyithatja meg. Chmoddal szerintem nem megoldható a dolog.
╚╦╦╦
-
tkazmer
addikt
Hogyan lehet egy sort törölni mysql-ben? Átfutottam a manual mysql függvényeit, de nem találtam köztük ilyesmit
úgy tervezték, hogy kibirjon egy atomtámadást is. De nekünk komolyabb fegyvereink vannak, mint pl Béla bá, a földmunkagépkezelő
-
woodpaul
őstag
DELETE FROM <tábla neve> WHERE <attribútum> = <attribútum értéke>;
pl.
DELETE FROM register WHERE login = 'woodpaul';
Szerk:
Nagyon figyelj oda arra, hogy jól add meg a WHERE feltételét, mivel könnyedén törölheted a tábla összes sorát! Ha nem vagy túl gyakorlott SQL-ben, ajánlom, hogy készíts másolatot az adott tábláról!
[Szerkesztve]Androidő
-
zeix
senior tag
Helló van egy olyan problémám, hogy:
van egy 160 oszlopos táblázatom, nekem abból lenne szükségem 3 vagy 4 oszlop értékeire amit egy másik táblábzatan tárolnék.
Végülis az a lényeg, hogy hogyan viszem be egyszerre több táblába az értékeket?
Az egyikbe mind a 160 érték kerülne bele a másikba csak a kiválasztott 3.
Előre is köszi a segítséget. -
alitak
senior tag
Re!
Van egy php kódom, ami nem megy:
$user = $_POST[''user'';
$pass = $_POST[''pass'';
$par = ''select * from felh where user='$user''';
$adatb = mysql_query($par);
$sor = mysql_fetch_array($adatb);
if ($sor==='''') echo ''V'';
Alapvetően az lenne a feladat, hogy ha vki beírja a usernevét+jelszót, akkor mysql-ből az $adatb nevű változóba kerül az a sor, ahol a user mező értéke a beírt usernév. Hogyan lehet azt megoldani, hogy ha nincs a táblában a megadott user, akkor pl. átdobja az oldalt egy másikra (gondolok itt a header megoldásra)?Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
Lortech
addikt
$sor = mysql_fetch_array($adatb);
A mysql_fetch_array fgv egy asszociatív tömböt ad vissza, így ennek a sornak nincs sok értelme szerintem. Vagy azt akarod megtudni, hogy lett-e egyáltalán eredmény? Mert ha igen, akkor azt vizsgáld meg inkább, hogy igaz-e.
tehát pl. if ($sor = mysql_fetch_array($adatb))
Észrevételek: ha loginról van szó, akkor a lekérdezésben usernévre és jelszóra keress, ne csak userre, így egy lépésben megúszod.
Így ha lett pontosan egy row eredmény, akkor login. Meg így feleslegesen nem nyalja be az adatokat az adatbázisból, csakha ténylegesen fel is lesz használva, tehát ha jó a user/pass. Bár ez elhanyagolható.
A jelszó pedig legalább egy md5()-tel legyen bekódolva (már regisztrációkor úgy teszed be adatbázisba), mert én személy szerint nem szeretnék olyan oldalon regelni, ahol egy adatbázislopással többszáz/ezer jelszót (köztük az enyémet) megszerezhetnek.Thank you to god for making me an atheist
-
alitak
senior tag
mysql_fetch_array eddig is terítéken volt már nálam, tudom, hogy asszociatív tömböt ad vissza. Viszont így utólag nézve a $sor === '''' -nek tényleg nincs túl sok értelme
Az lenne a cél, hogy miután vki megad egy olyan user nevet, ami nincs regisztrálva még, akkor header-rel visszadobja őt a login ablakba. Viszont az előbb írt kóddal ez nem megy. A 'felh' nevű táblában csak alitak nevű user van, és ha azt írom usernak, hogy 'a', akkor is tovább enged.
Viszont ha van ilyen sor:
if (!$sor = mysql_fetch_array($adatb)) ...;
akkor a ... helyén levő parancsok lefutnak, ha nem létező user nevet adott meg vki, nem?
A fórum, amin dolgozok nagyon kezdőcipőben van még, és mostanság túl sok időm nincs is, idén érettségiznem kéne. Lesz kódolás is, meg minden finomság, de PHP-ban is még aránylag új vagyok.Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
cucka
addikt
nem értem, mi okoz ebben nehézséget :)
$user=mysql_real_escape_string($_POST['user']);
$jelszo=mysql_real_escape_string($_POST['jelszo']);
$result=mysql_query(''select count(*) from felh where user=$user and jelszo=$jelszo'');
if (mysql_num_rows($result)===0) header(''Location: login.php'');
else header(''Location: vedett_tartalom.php'');
die();
mod: későbbiekben érdemes lehet eltárolni a belépett user adatait, mondjuk session-ban, ilyen esetben count(*) helyett *-ot válassz ki a táblából, és mielőtt átirányítanád a védett oldalra, fetch-eld a result tartalmát és pakolgasd be a session-be a szükséges adatokat.
[Szerkesztve] -
alitak
senior tag
Az a nehéz, hogy még kezdő vagyok, és talán kicsit nagy fába vágtam a fejszém így az elején.
pl. eszembe sem jutott, hogy mysql parancsban használjam az and utasítást is. Az ilyen jellegű problémákat oldja majd meg a gyakorlat remélem
Belépés után csak sessionid-t, a user nevét és a jogokat tárolom el egy mysql táblában, és csak az id-t küldöm session-nal.Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
Lortech
addikt
Belépés után csak sessionid-t, a user nevét és a jogokat tárolom el egy mysql táblában, és csak az id-t küldöm session-nal.
Lehet, hogy ezt elírtad-e vagy félreértem, de ennek mi értelme? Arra van a session, hogy a hozzá tartozó adatokat ott tárold el, ne kelljen szüttyögni adatbázissal. Minden egyes lekérésnél nevet beolvasni teljesen felesleges terhelés a szervernek, azontúl, hogy bonyolítás is.Thank you to god for making me an atheist
-
cucka
addikt
ennek így nincs sok értelme. :)
először is a #831-ben írt kódom hibás, count(*) helyett simán * kell a lekérdezésbe.
a védett oldalra való átirányítás előtt pedig a legegyszerűbb, ha a user összes adatát benyomod a session-be, mert amúgy sem túl nagy adatmennyiség.
például így.
if (mysql_num_rows($result)===0) header(''Location: login.php'');
else {
$_SESSION['user_adatok']=mysql_fetch_assoc($result);
header(''Location: vedett_tartalom.php'');
}
így a továbbiakban az isset($_SESSION['user_adatok'])-al tudod megnézni, hogy be van-e jelentkezve a user és ha például a user nevét szeretnéd kiírni valahova, akkor azt a $_SESSION['user_adatok']['nev'] fogja megmondani. -
alitak
senior tag
Akkor session id az mire van? Továbbá minek akkor a session-okhoz mysql tábla? PHP black book-ban volt ilyesmi írva, viszont akkor már tényleg nem értem
Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
Lortech
addikt
Session id az a session azonosítója. Kliens oldalon egy cookie testesíti meg, ami tárolja az id-t. Ezt a cookie-t és vele az id-t a kliens minden oldallekéréskor küldi a szervernek, a szerver pedig azonosítja az id alapján a sessiont. Mivel azonosítva van a session, az ehhez rendelt változókat php-ből kényelmesen el tudod érni. Ha nagyon ''advanced'' akarsz lenni, akkor csinálhatod a session kezelést kézzel is, de értelmét nem látom a te esetedben. Hangsúlyozom, a session kezelés automatikus, nem neked kell küldeni az id-t, neked annyi a dolgod, hogy elindítod a session-t, aztán kiveszel, beteszel, amit akarsz. Logout-nál meg lezárod a sessiont.
[Szerkesztve]Thank you to god for making me an atheist
-
alitak
senior tag
OK, köszi mindkettőtöknek a segítséget. Úgy néz ki, hogy müködik a bejelentkezés, kijelentkezés. Mostmár csak foltozni kell majd folyamatosan
Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
tkazmer
addikt
Tudja valaki, hogyha azt mondom a mysql nek, hogy select * from tabla1, tabla2, akkor, ha mindkettő táblában 100 és 110 között van a sorok száma, miért kapok 10812 találatot?
úgy tervezték, hogy kibirjon egy atomtámadást is. De nekünk komolyabb fegyvereink vannak, mint pl Béla bá, a földmunkagépkezelő
-
tkazmer
addikt
válasz Jester01 #840 üzenetére
Jah....rendben.
Másik kérdésem, hogy azt szeretném megoldani, hogy a user ip címétől függően kiírjon, vagy ne írjon ki vmi az oldal. Így probáltam:
<?php
$ip = $_SERVER['REMOTE_ADDR';
print ''ip: $ip'';
$megf_ip = '127.0.0.1'
if ($ip = $megf_ip){
print''ok'';
}
?>
De ez így nem jó. Mit kellene módosítanom?
Jah, ez a gond vele:
Parse error: parse error, unexpected T_IF ...úgy tervezték, hogy kibirjon egy atomtámadást is. De nekünk komolyabb fegyvereink vannak, mint pl Béla bá, a földmunkagépkezelő
-
woodpaul
őstag
Ha már az adatbázislopás szóba került... Milyen elvek betartásával lehet egy kevésbé feltörhető PHP+MySQL alapú webes alkalmazást írni?
Még kora ősszel írtam egy fórumot (az első nagyobb projectem), aztán nemsokára kaptam egy emailt, hogy igen könnyen feltörhető és vigyázzak! Ez kicsit rámhozta a frászt...Androidő
-
woodpaul
őstag
Köszi! A Lorthech által emíltett md5() az egy beépített PHP függvény, mint a password()?
Töredelmesen bevallom, amikor a fórum motort írtam, mindeféle kódolás nélkül pakoltattam bele a felhasználó passwordjeit a táblába. Egy ügyes query-vel ezt utólag is módosítható, igaz?
Abból nem lehet baj, hogy a POST-tal elküldött változókat az egyszerűbb, $valtozo = $_POST['valtozo' formában adom át (set_global_variables be van kapcsolva, hogy működjön)?Androidő
-
burgatshow
veterán
válasz woodpaul #845 üzenetére
Az md5() egy függvény a php-ban, de a mysql is támogatja. Én például jobban szeretem a MySQL-ét használni egy lekérdezésben.
SELECT * FROM tabla WHERE username='user' AND password=MD5('$valtozo');
Ahol a $valtozo szerepel az lehet például a $valtozo = $_POST['postolt_jelszo']; -
woodpaul
őstag
válasz burgatshow #846 üzenetére
Ha jól látom, az md5() oda-vissza működik, azaz nemcsak encryptel hanem decryptel is? Hm, nem rossz!
Androidő
-
woodpaul
őstag
Azt úgy értem, hogy van egy form, ami postolja a beírt adatokat egy másik PHP fájlnak, ami az elején a $_POST tömbből kiszedi az ''elküldött'' változókat. A kérdésem pedig az volt, hogy ez mennyire biztonságos így (működni remekül működik).
Az említett mysql_real_escape-et még sosem használtam, lehet, hogy ezért támadható az oldal? Komolyan, írok egy emailt annak a tagnak, ha ért a támadásokhoz, biztos tud javasolni vmi védekezést ellenük!Androidő
-
Jester01
veterán
válasz burgatshow #846 üzenetére
Én például jobban szeretem a MySQL-ét használni egy lekérdezésben.
Miért? Ha már a php-ben alkalmaznád, akkor még a mysql felé irányuló kommunkációban sem lehetne ellopni a jelszót.Jester
Aktív témák
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- VR topik (Oculus Rift, stb.)
- Samsung Galaxy Z Flip5 - ami kint, az van bent
- Hobby elektronika
- Xbox Series X|S
- Autós topik
- Milyen CPU léghűtést vegyek?
- ASUS routerek
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...