Új hozzászólás Aktív témák
-
disy68
aktív tag
A php html entity-ket kezelő függvényei csak a pontosvesszővel zárt karaktereket ismerik fel, mert az a szabvány.
A böngésző meg túl okos és megengedő akar lenni sok esetben és ezért fogja megjeleníteni a nem szabvány html encode-olt karaktereket is.
És igen a
A
és aA
; is az 'A' karakter csak más kódtábla szerint.“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
sztanozs
veterán
ha egyszer jól van kijelezve, és használva is.
Pont az a lényeg, hogy nincs jól (szabványosan) használva. Azért jelenik csak meg "helyesen", mert a böngészőmotorok direkt úgy vannak megírva, hogy a lehető legfospumpább módon összehányt html forrást is "helyesen" meg tudják jeleníteni. Ezt használják ki ezek az exploitok, és ezért kell ilyen extra lépéseket berakni az ellenőrzésekbe.
nem voltam elég gyors a válasszal...
Sőt, ae
is helyes[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Taci
addikt
Szerintetek hogyan jobb adatbázisban tárolni az adatokat?
Adott mondjuk egy sztring, ami a forrásból idézőjellel jön, pl.:
Az almaecet "finom" és egészséges.1. opció:
Ezt tároljam így, ahogy van, majd a megjelenítésre adjam át htmlspecialchars() segítségével?2. opció:
Eleve már htmlspecialchars() használatával tároljam le? Így ez kerülne az adatbázisba:
Az almaecet "finom" és egészséges.Ez utóbbinál a keresésben látok problémát (ami persze nem megoldhatatlan), mert itt ha arra keresnek rá, hogy "quot", akkor minden idézőjelet helyettesítő html entity-re is találatot fog adni.
Így (egyelőre csak a keresés miatt) az 1. opciót tartom jobbnak, de szeretném kikérni a ti véleményeteket is. Melyik az ajánlott, bevált út? És hogy esetleg ha van még valami "jó ha tudom" dolog, azt is szívesen venném.
Köszönöm.
-
nevemfel
senior tag
Mindenképp az első opció, a következők miatt:
Kiíratásnál kontextusfüggő, hogy hogyan kell escapelni az adatot. Másképp kell escapelni, ha a string a html törzsbe kerül, másképp kell escapelni, ha egy html tag attribútum értéke kapja meg a stringet, másképp kell escapelni, ha css blokkba teszed be, és másképp kell escapelni, ha egy javascript változó kapja meg értéknek. Illetve másképp kell escapelni, ha logfileba, CSV exportfileba kerül az adat. És az általad leírt probléma miatt is (adatbázis indexelés, satöbbi.)
[ Szerkesztve ]
Forget your troubles, c'mon get happy
-
Taci
addikt
Igen, így van. Több helyről érkezik, különböző formákban (van, ahol már eleve a forrás is escape-elt, encode-olt, össze-vissza), ezeket visszaalakítom "olvasható" formátumra, és így vannak letárolva. Ugyanígy a karakterkészlettel is, UTF-8-ra van konvertálva mind, és így van tárolva.
-
Taci
addikt
válasz sztanozs #20799 üzenetére
Mint kiderült, mégsem értem...
Ez a sor nekem elég összetett:
$pattern = '/(&#(?:X[0-9a-f]*|0{0-8}*|{1-9}{0-9}*)(?!;))/i';
Részekre szedve:
-&#
ezzel kezdődő mintákat keres
- amik így folytatódhatnak:
-X[0-9a-f]*
: tehát a következő karakter az X (a végén lévő /i miatt kis- és nagybetű is), utána pedig a 16-os (HEX) számrendszer miatt 0-9 és a-f karakterek szerepelhetnek, a * miatt 0 vagy több számban. Szóval ez a része azt hiszem, rendben (mármint értem), ezzel van lekezelve, ha Hex kódolásban lennének a karakterek.
-0{0-8}*
: Ez a rész nem teljesen tiszta. Ha jól értem, ez azt jelenti, hogy a&#
után hány darab 0 karakter állhat, és itt az van megadva, hogy 0-tól 8 db-ig akármennyi. Tehát ez alapján a minta lehetne&#
,�
,�
, ...,�
? Ezt nem értem, hogy mire való - vagy rosszul értelmezem.
-{1-9}{0-9}*
: Ezt a részt egyáltalán nem értem. Kapcsos zárójel elvileg azt jelenti, hogy az előtte álló karaktert hányszor ismételje meg. De a|
miatt a&#
van előtte. Szóval nem értem.- A végén van még a
(?!;)
. Ezt sem értem, hogy mit csinálhat.- És a legeljén lévő
?:
-ról pedig csak a nevét találtam: Non-Capturing Groups. De a működését nem bírom felfogni. Talán "csak" a művelet sebességéhez van köze?
(?: ), in contrast to ( ), is used to avoid capturing text, generally so as to have fewer back references thrown in with those you do want or to improve speed performance.-
$replacement = '${1};';
Itt pedig az $1 a backreference lenne. A kapcsos zárójeleknek itt a Non-Capturing Groups-hoz van köze? Ezt sem igazán értem. Mert ugye itt adod meg, hogy ha megtalálja a mintát, akkor mire cserélje: eredeti + zárja le pontosvesszővel.
Az én felületes "tudásommal" ha magam írtam volna, akkor ezt írtam volna:$replacement = '$1' . ';';
Miben különbözik az általad írt?Összességében a cél nyilván az, hogy felismerje, ha Dec vagy Hex kódolású karakterekről van szó (Dec:   Ẁ ♦ - Hex: ~ ˆ ∼ ), és ha nincs pontosvessző a végén, akkor egészítse ki vele.
Csak a részletekben vesztem el, és szeretném érteni, mi-mit-miért csinál. (Bocsánat, ha evidens dolgokra kérdezek rá, próbáltam megérteni a részleteket, utána járni, de ez egy számomra elég bonyolult "képlet".)
Ezt a pár dolgot pár mondatban el tudnád, magyarázni, kérlek?
-
Taci
addikt
És nem is úgy működik, ahogy gondolnám/szeretném, hogy működjön.
Adott pl. ez a sztring:
$link = 'jAvAsCript';
Itt a
j
ugye már eleve ;-re végződik, szóval skippelnie kellene. Ebből lenne aj
karakter.
AA
-öt zárnia kellene ;-vel, de nem teszi. Ebből lenne azA
karakter.
AA
-t jól kezelni. Szintén azA
karakter.
És aC
-t is zárni kellene ;-vel, de ezt sem teszi. Ez lenne aC
karakter.Próbáltam átírni, hogy működjön, de nem tökéletes:
$pattern = '/(&#(?:X[0-9a-f]{2,}|[0-9]{2,})(?!;))/i';
Kipróbálható verzióban: [link]Itt az a baj, hogy "beragad" két karaternél, és nem nézi, hogy zárva van-e pontosvesszővel.
Pl. aj
-nél csak

-ig veszi, mögé rak és pontosvesszőt, és kilép, mint aki jól végezte dolgát. Eredményül pedig ezt adja:[sortörés]6;AvAsCript
Szóval a két megoldás között lenne az igazság - nyilván sztanozs megoldásához sokkal közelebb.
[ Szerkesztve ]
-
sztanozs
veterán
Igen, elírtam a regex-et több helyen...
Először a parse-olható entity-ket el kell távolítani, majd javítani, majd még egyszer eltávolítani:<?php
$link='jAvAsCript';
echo $link . "\r\n";
// parse proper entities
$link = html_entity_decode($link, ENT_QUOTES);
echo $link . "\r\n";
$pattern = '/(&#(?:X[0-9a-f]+|0[0-7]+|[1-9]\d*)(?!;))/i';
$replacement = '${1};';
// add missing semicolon
$link = preg_replace($pattern, $replacement, $link);
echo $link . "\r\n";
// parse fixed entities
$link = html_entity_decode($link, ENT_QUOTES);
echo $link . "\r\n";
?>[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Taci
addikt
válasz sztanozs #20815 üzenetére
Köszönöm szépen!
Első lépésként _decode-ot hívni tényleg nagyon jó ötlet.Ha ehelyett:
$pattern = '/(&#(?:X[0-9a-f]+|0[0-7]+|[1-9]\d*)(?!;))/i';
így lenne:$pattern = '/(&#(?:X[0-9a-f]+|[0-9]+)(?!;))/i';
akkor miben hibázhatna? Mert így igazából a 2. feltétel le is fedhetné a 8-ast és a 10-est is.Sőt, most találtam egy példát is, amiben az első hibás eredményt ad, a második pedig jót:
$link="javascript:alert('Hacked!')";
Itt az elsővel az output (_decode előtt):
javascript:alert(9Hacked!')
A másodikkal pedig (_decode előtt):javascript:alert('Hacked!')
Persze ez lehet csak egy egyszeri "mázli", de biztos okkal csináltad úgy az elsőt, ahogy, és csak szeretném megérteni.
Köszönöm.
-
sztanozs
veterán
Igen igazából csak az számít, hova rakja a pontosvesszőt, a tiéd rossz helyre fogja, ha pl egy ilyen jön:
ϻblabla -> ϻblabla
ebből a böngésző ezt fogja értelmezni: A9;blabla
viszont a _decode nem fogja elkapni és te ezt látod: ϻblabla
vs
ϻblabla -> e9blabla
ebből a böngésző ezt fogja értelmezni: A9blabla[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Taci
addikt
válasz sztanozs #20817 üzenetére
Pont azért írtam azt a példát az előbb, mert annál sajnos még hibázik a kódod.
De ennél így leegyszerűsítve is:$link="'";
A'
az aposztróf ('
).Ez a kimenete a kódodnál:
9
És a böngésző így jeleníti meg: [ismeretlen karakter]9Esetleg annyi változtatás kellhet, hogy
0[0-7]+
helyett0[0-7]{2,}
legyen?
Mert a 8-as számrendszerbeliek ha jól láttam, talán minimum 3 karakteresek. -
Taci
addikt
Kapkodtam, bocsánat...
A 039 az nem 8-asban (Oct) van, hisz' ott a 9-es szám benne...
De az zavar be igazán, nem nagyon látok példát rá, hogyan lenne 8-asban (Oct) leírva bármelyik karakter is.Itt van pl. ez a táblázat: [link]
A 039 azért az aposztróf, mert a 39 Dec-ben az. És valamiért a '-et őt átalakítja '-cé.
Én azt gondoltam (mert mint írtam, sajnos példát nem találtam rá), hogy ha 0-val kezdődik, akkor 8-as számrendszerbeli (Oct). És hogy az ellenőrzésed is ezért van így megcsinálva, hogy ha 0-val kezdődik, akkor már csak 0 és 7 közötti számokat vizsgálsz.
De itt van pl. a
047
. Ez ugye megfelelne a feltételnek, mert 0-val kezdődik, és utána 0 és 7 közötti számok vannak. A kódod szépen le is zárja ;-vel, a böngésző viszont/
-t ír ki, mivel a 47 a/
karakter decimális kódja. Szóval ott is a 047-et 47-ként kezeli, Dec-ként.
Viszont Oct-ban a 047 az aposztróf lenne'
.Az Oct-kódolásúakat tényleg &# kezdéssel kell meghívni? Ezért ellenőrzöd így? Tehát hogy ha
�
-val kezdődik, akkor 8-as számrendszerbeli (Oct)?És amit írtál példát sem értem már:
ϻblabla
Itt is a kódod azért rakja a pontosvesszőt a 0101 után, mert meghúztad neki a 0-7 határt (0[0-7]+). Ezért lesz e
belőle, és aze
aze
karakter, így kiírni is azt írja, hogye9blabla
Szóval ezt is a Dec-kódolásként veszi.És te azért írtad azt, hogy a kimenet
A9blabla
lesz, mert a 101 az Oct-kódja azA
karakternek.Viszont mégsem így működik. Nem lehet, hogy azért, mert a Oct-kódokat nem
&#
kezdettel kell írni? (Nem tudom, sehol nem találok példát rá.)Mert ez így most már nagyon össze-vissza számomra, és rosszul érzem magam, hogy ennyi kommentet írok, és spammelek... .
-
sztanozs
veterán
Elméletileg a #&0 az oct kódolás lenne, de ezek szerint nem jól van implementálva abban a böngészőben, amit használsz. akkor csak simán kel kell venni az oct részt és hagyni, hogy decimálisba kódolja át és a kódodat használni. Így is - úgy is, de megszünteted az injection lehetőségét...
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Taci
addikt
válasz sztanozs #20820 üzenetére
Asztali legfrissebb Chrome-ban, Firefox-ban és Operában is néztem, ugyanaz mindenhol. Ami fura, \-rel írva (pl. \047 az aposztróf) már jól fordítja.
megszünteted az injection lehetőségét
Pontosan hogyan? Hisz' eddig csak megkönnyítettem a dolgát azzal, hogy nem a böngészőnek kell dekódolnia, nem?Mármint itt van példának ez:
$link = "jAvAsCriPT:alert(\047Hacked!')";
A regexet használva, majd dekódolva a böngészőnek már semmi dolga nincs, mert egyből ezt kapja:jAvAsCriPT:alert('Hacked!')
Ez hogy szüntette meg az injection lehetőségét?
Mert eredetileg azért akartam ezt csinálni, hogy megtalálhassam a potenciálisan veszélyes kifejezéseket (javascript, script, onerror stb stb stb - nagyon hosszú lista, de talán megéri), amiknek amúgy semmi keresnivalójuk nincs egy linkben - aztán vagy csak ezeket a talált "rossz" kifejezéseket törölni, vagy az egész linket skippelni. (valószínűleg ez utóbbi)
De ha csak a decode --> regex --> decode lépéseket csinálom, az hogyan szünteti meg a támadási felületet?
-
sztanozs
veterán
Úgy, hogy:
- ha nem http[ s ]://-rel kezdődik a link, és
- ha tartalmaz nem whitelist-elt karaktert ' "
akkor simán eldobod a linket.[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Taci
addikt
válasz sztanozs #20817 üzenetére
A regex (a minta) mégsem tökéletes még.
Ránéznél erre a példára, kérlek? Remélhetőleg neked hátha hamar szemet szúr, mi lehet a hiba.[link] (Csak két helyen kell a kommentelést
//
leszedni/beírni.)Adott a
–
(hosszabb kötőjel) karakter, aminek a kódja:–
.1. változat:
- Ha nincs a végén pontosvessző, és a te kódodat ({1-9}{0-9}*
) használom, nem rakja végére a pontosvesszőt. (helytelen)
- Az "enyém" ([0-9]*
) igen. (helyes)2. változat:
- Ha van pontosvessző, és a te kódodat használom, akkor nem bántja, marad minden jó a formában, és a végén a _decode átalakítja a megfelelő hosszú kötőjelre. (helyes)
- Az "enyém" viszont ezt csinálja belőle:̵1;
, a 3. számjegy után berak egy pontosvesszőt. És nem értem, miért. (helytelen)És a
{ }
és[ ]
közötti különbségre sem tudtam még rájönni. Te az előbbivel írod, én azt a formát viszont csak a számosságnál találtam meg, az általad használt formában nem:
n{x,y} Matches any string that contains a sequence of X to Y n'sRá tudnál nézni erre, kérlek?
-
sztanozs
veterán
De itt a tökéletes regex, amiben jó a negative-backtest is:
\(&#(?:X[0-9a-f]+|\d*)(?![^&]*;))\i
itt a kód:
http://sandbox.onlinephpfunctions.com/code/ac08ec9ed305bfa1d881ddbaec58f8b58ab35cc8[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
emre33
addikt
Sziasztok!
Nem PHP, de nem találtam jobb témát, hátha tudok nekem segíteni:
Htaccess segítségével szeretnék egy egyedi átirányítási szabályt létrehozni.
Szerverhez nem férek hozzá, csak htaccess jöhet szóba.1 darab www root kezel 2 domain címet.
Amit szeretnék:1: Átírányítás a valami.domain1.hu* címről a valami2.domain2.hu* címre.
Kivéve a 2. pontot
2. Ha a kérés a valami.domain1.hu\alma\ címre érkezik, akkor az a valami2.domain2.hu\korete\ címre dobja át.Első pont egyszerű, az működik is, de hogy ide hogy lehetne a kivétel szabályt beleírni, azt már nem megy.
kösz a segítséget!ASUS B650E-E, AMD Ryzen 9 7900, CORSAIR 64GB DDR5 6000MHz CL30 KIT CMK64GX5M2B6000Z30, ARCTIC COOLING Liquid Freezer II 360
-
válasz emre33 #20828 üzenetére
Szia!
Én a domain átirányítást az alábbi módon csináltam meg annó a régi Weboldalamról az újra, egy egyszerű JS-el (a példa kedvéért 1:1-ben mutatom, tehát nem reklámozás a célom):
<!DOCTYPE html>
<html>
<head>
<script>
function myFunction() {
location.replace("https://manedvaper.hu");
}
</script>
</head>
<body onload="myFunction()">
</body>
</html>Ez volt a régi Weboldal Index fájljába. A felhasználó még csak észre sem vette, olyan gyors az átirányítás.
Konkrétan azt tudom javasolni, mint egyetlen jelenleg eszembe jutó ötlet, hogy minden régi domain alcím index fájljába ezt kell beletenni, a megfelelő helyre navigálással.[ Szerkesztve ]
But who is watching the guardians?
-
Sziasztok!
Egy nyelvi PHP fájlban találkoztam az alábbi mintát követő kódsorral:
$_['Notes'] = 'Megjegyzések';
Én korábban nem láttam még ilyet, ezt hogyan lehet használni?
But who is watching the guardians?
-
Taci
addikt
Amit terveztem, és ami idő közben még képbe került az XSS elleni védelemben, azzal nagyjából készen vagyok (ezer köszönet a sok segítségért, sztanozs!), összeállt a függvény.
Ki szeretném kérni a véleményeteket, hogy van-e még esetleg valami aspektus, amit nem vizsgálok, és kellene / jó lenne / megérné.
A témában az utóbbi napokban/hetekben átolvasott cikkek, átnézett YT-videók alapján összeszedtem egy példa listát, hogy mik ellen kell leggyakrabban védekezni, milyen támadások/próbálkozások érhetnek. Ezt kiegészítettem még ebből a listából azokkal, amiket úgy láttam, korábban még csak hasonlót sem próbáltam: XSS Vectors Cheat Sheet.
Jelenleg csak keresőmezőben van user inputom, azt első körben kliens oldalon validálom, de persze megkerülhető, szóval azt a kérelmet ezen is végig ellenőriztetem.
Ezen kívül RSS-ekből érkező következő 3 típusú tartalmat vizsgálok vele:
- title (cím)
- description (rövid leírás)
- link (weblap és kép)Így néz ki a függvény, lépésről lépésre:
0. lépés (a függvény hívása előtt):
html_entity_decode
($abc, ENT_QUOTES);1. Ha van találat a
&#
párosra, akkor preg_replace használatával kiegészíteni az esetlegesen hiányzó pontosvesszőt (by sztanozs)
2. Pár példában az unicode kódolással kapcsolatban is találatot, így vizsgálom azu+
és\u
találatokat. Ha van találat, mb_convert_encoding segítségével dekódolás.
3. Rákeresek a<
karakter összes lehetséges formájára, és ha megtalálta,<
-re cseréli.
4. Ha linket ellenőriz, rákeres pár előre beállított, nem linkbe illő karakterre, pl.( ) \ ; , < > { } @ $
aztán még a különböző féle aposztrófokra és idézőjelekre is.' " ‘ ’ ” “
. Itt csak logbejegyzést csinálok egyelőre, hogy vizsgáljam, hogyan működik. Ha a megfelelő találatokat ez is jól szűri, akkor már ez is átbillentheti az xss_found-kapcsolót.
5. Aztán ezeket a nem normál idézőjeleket és aposztrófokat a "normál" változatukra cseréltetem.
6. Ugyanígy a\n
-t és\r
-t (és máshogy kódolt változatukat is) is lecserélem, de üres sztringre. Ugyanígy a&Tab
-ot és a null karaktert is\0
.
7. Ezek után van egy nagyon hosszú lista, amiben a "dirty content" van listázva. Ezekre a kifejezésekre keresek, és ha bármelyikre találat van, átbillent egy változóértéket, és az adott komplett bejegyzés skippelve lesz. A listában az összes HTML tag benne van, illetve az összes event handler is (pl. onError). Plusz persze a "javascript", "script", "noscript" stb. stb sztringek is. Az összes, amit a példákon keresztül támadhatónak láttam, és amiknek semmi helyük se egy linkben, se egy normál szövegben (cím, leírás). (Ha mégis fals pozitív találat lenne, majd külön kezelem.)
8. Ha linket vizsgál, és nincs dirty content-re találat, akkor a biztonság kedvéért megvizsgálom mégfilter_var
segítségével (FILTER_VALIDATE_URL).Ez a függvény tartalma. Ezután a korábban már megírt és használt processzek vannak, ahol még a linkkel kapcsolatban fontos, hogy ha a protokol csak
http
, akkor kiegészítihttps
-re, ellenőrzi, hogy valid-e, és ha igen, https-ként tárolja, amúgy skippeli.Ami átment minden szűrőn, az így lesz (_decode-dal) tárolva. Megjelenítésre pedig minden esetben minden érték
htmlspecialchars
($xyz, ENT_QUOTES); használatával lesz átadva.Lehet, erősen overkill, de az is lehet, hogy hiányzik még valami, amit nem vettem észre, hogy figyelni kellene. Lehet, soha senki nem fog "megtámadni", de jobb félni és felkészülni.
Van esetleg még valami, amire figyelnem kellene?
Köszönöm. -
Taci
addikt
Illetve alig hogy megírtam a hozzászólást, rátaláltam még a "Double Encoding" kifejezésre, és azzal erre a példára is (pontosabban előbb a példára, aztán a kifejezésre):
%253Cscript%253Ealert('XSS')%253C%252Fscript%253E
Úgyhogy ezt lekezelendő az 0. és az 1. lépés közé még beleraktam egy sztring cserét,%25
-ről%
-ra, és még beleírtam pluszban, hogy ne csak a < karaktert kódolásait alakítsa vissza, hanem a>
és a/
karaktereket is.
Így a fenti sztringből a feldolgozás végén (a dirty content check előtt) ez lesz:<script>alert('XSS')</script>
-
-
pelyib
tag
Marmint mi nem lattal meg?
Associative array-t vagy az underscoret?variable name
A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores.associative array
Syntax "index => values", separated by commas, define index and values. index may be of type string or integer.Az egyik egy string ($example), a masik egy array ($_).
[ Szerkesztve ]
-
Taci
addikt
Egy példán keresztül könnyebben átlátható:
$_ = array("Notes"=>"35", "Dont"=>"37", "Lie"=>"43");
echo $_['Notes'];
Az output pedig az lesz, hogy:
35
pelyib pedig leírta, hogy mi-miért:
_
--> valid változónév,['Notes']
--> asszociatív tömb Notes nevű eleme,$_['Notes']
--> Az "aláhúzás nevű" asszociatív tömb Notes nevű elemének értéke. -
Köszönöm szépen a válaszokat!
Tehát lényegében ugyan az, mint amit én használok, csak másképpen leírva
But who is watching the guardians?
-
biker
nagyúr
válasz pelyib #20834 üzenetére
Szerintem csak megzavarta, hogy épeszű ember nem ad $_ változónevet, vagy épp $_1-et sem, én legalábbis idegbajt kapok amikor olyan kódot kell javítani, megfejteni/átalakítani, amiben olyan beszédes változók vannak mint $vk és társai
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
supercow
őstag
Régi cégnél ahol dolgoztam a főnök ilyen változóneveket használt, de nem lehetett szólni miatta:
cucc
cucc1
cucc11
cucc12
cucc111122
cuccom( + tetszőleges számkombináció)
lof*sz( + tetszőleges számkombináció)Ebből aztán persze voltak viccesek, pl
cucc112 = (lof*sz11 + cucc111) / cucc2
Aztán ha valakinek 1 hónap múlva kellett vele dolgoznia...
Akkoriban persze nem volt IDE meg refaktor meg ilyen úri huncutságok.
In nomine Pasta, et Fusilli, et Spaghetti Sancti. Ramen.
-
pmonitor
aktív tag
válasz supercow #20840 üzenetére
Ez a változónév adás is érdekes dolog.
Itt pl. az illetőnek bajára voltak az i,j,k változóneveim.Az utána következő hozzászóló ugyanúgy i,j,n változóneveket használt, de azzal nem volt problémája...
'Szelektív emlékezet'
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
Mike
veterán
-
supercow
őstag
válasz pmonitor #20841 üzenetére
Szerintem mintakódra, olvashatóság miatt teljesen jó az
$i, $j, $k
.
De amikor fontos, ott értelmes ember beszédes változónevekkel dolgozik, hogy ne szívassa magát és másokat. De ugye ez cégenként-egyénenként változó, lehet követelmény vagy belső indíttatás.[ Szerkesztve ]
In nomine Pasta, et Fusilli, et Spaghetti Sancti. Ramen.
-
Taci
addikt
$slash_character_array = array(
"%2F",
"/",
"/",
"/",
"/",
"/",
"/",
"/",
"/",
"/",
"/",
"/",
"/",
"\x2f",
"\u002f"
);
foreach ($slash_character_array as $slash) {
if (stripos($dataToCheck, $slash) !== FALSE){
//kezelés
}
}
Ha
$dataToCheck = "https://mobilarena.hu/tema/php_kerdesek_2/friss.html";
akkor erre is találatot ad, és nem értem, miért.És amikor logoltatom, hogy mégis mire talált rá, azt mondja, hogy a
/
karakterre.Ennek mi az oka? Nincs benne a
/
karakter ebben a formájában. Mégis miért talál rá? Van tippetek esetleg? Valamiért automatikus átalakítja? Ha igen, melyiket, miért? -
Sziasztok!
Adott egy elméleti kérdés.
Van A) Webszerver és van B) Webszerver. A kettő független egymástól.
Tegyük fel, A) Webszerveren van egydocument.txt
fájl. Ezt a fájlt egy, az A) Webszerveren futó PHP kód módosítgatja. A kérdés az, hogy ha van B) Webszerveren is egy olyan futó PHP kódsor, melyA)Webszerver/document.txt
eléréssel rendelkezik, van-e tényleges hozzáférése ehhez a fájlhoz?Ugyanis felmerült bennem egy kérdés, miszerint ha ezen leírásra a válasz helyeslő, akkor lényegében egyetlen Webhely sincsen biztonságban...
But who is watching the guardians?
-
sztanozs
veterán
Az 'A' php fájlrendszer szinten éri el a "dokumentum.txt"-t. Ha a 'B' webszerver is eléri fájlrendszer-szinten a "dokumentum.txt"-t akkor módosítani is tudja. Ha nem, akkor nem.
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Mike
veterán
Ne kövezzetek meg, total dump kérdés, de a következőbe futottam bele
adott egy url, akarmi.php, ha rosszul paraméterezed, 400-as hibát ad vissza és kiír egy szöveget.
- ha ezt szimplán beírom a böngészőbe, akkor kiirja a szöveget
- ha ugyanezt object-ben teszem, nem jelenik meg semmia cél az lenne , hogy ott is kiirja
van erre valami egyszerű megoldás, azon felül hogy az egészet átteszem ajaxba, és nem adok vissza egész oldalakat? (tudom, de ez most ilyen, ha nem muszáj nem alakítanám át.)
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest