Zkratka takovy teamviewer. zivatel rozdil nepostrehne, admin by to dokazal dohledat a asi by si i vsiml nejakych nesrovnalosti.
Příspěvky odeslané z IP adresy 2001:718:2601:26c:8536:4f...–
Normalne, naboura se do prohlizece/pc a prepise cookies nebo prenos dat do pc. Jak to delali hackeri do ted s user id, name a psw? Meli o neco jednodussi zcizit session, protoze to nebylo sifrovane.
Nebo mozna mluvis o necem jinem. Ja porad premyslim nad $_COOKIES a $_SESSION. To jsou pole, kam si muzes ulozit, co chces. Obsah neni nijak zabezpeceny.
Samozrejme bych vedel spoustu jinych zpusobu, jako treba klonovat pc a uzivatel pak uz pracuje jako pres vpn tunel. A mezitim mu na pozadi provadim vlastni operace. (nebo vpn tunel mam do uzivatele ja, ale to pak by videl otevirat okna prohlizece). Pak mi na tom, co je v session nezalezi :)
Vim, vim, jiste reknes, ze bezny uzivatel do session zasahovat nebude. Jenze, bezneho uzivatele bezpecnost nezajima :)
Aha, takze mi staci dat do session id admina. Tipnu si, id 0-20 je asi admin. A jsem prihlaseny jako admin, jupi, jou, nemusim znat ani heslo :)
Tak to by mne fakt zajimalo, jak zjistujes, zda je uzivatel prihlasen :)
test: https://jsfiddle.net/mpcj2b1z/
<div class=x><ul><li class=a></li><li class=b></li><li class=c></li><li class=d></li></ul></div>
<style>
.x {width:120px; height:30px; border:1px solid #f00;}
.x, .x div, .x ul, .x li, .x a {margin:0; padding:0; display: block;}
.x li, .x a {width:30px;}
.x {position: relative;}
.x .a, .x .b, .x .c, .x .d {position:absolute; background:#f00; opacity:0.3;width:20px;height:30px;}
.x .a {left:5px;}
.x .b {left:35px;}
.x .c {left:65px;}
.x .d {left:95px;}
</style>
Tak, ve FF je to pri zoom=100% zalomene pres 2 radky (myslim tim menu Kurzy a menu == 3 carky). Asi to mas tedy od zacatku spatne.
Pokud jsi chytry, pouzij tabulku.
Pokud se chces drbat s css, tak musis mit predstavu, co se deje. Treba bych zkusil nastavit vsemu margin:0; padding:0;, width, height, border:0, line-height nemenit, fontsize nemenit a vubec font. Font se nezvetsuje na pixely ale na EM, EX, pt, takze si treba nechat dostatecnou rezervu.
A vzdycky muzes pouzit pozicovani.
Ja nevim, ale podle mne, stejne potrebujes pro rozbaleni menu mit tam urcitou sirku. Tak bych proste natvrdo nastavil vsude stejnou.
.x {width:1200px;} // 4x300
.x, .x div, .x ul, .x li, .x a {margin:0; padding:0; display: block;}
.x li, .x a {width:300px;}
.x {position: relative;}
.x .a, .x .b, .x .c, .x .d {position:absolute;}
.x .a {left:0;}
.x .b {left:300px;} ...
<div class=x><ul><li class=a></li><li class=b></li>...</ul></div>
(netestovano)
K tomu predchozimu:
... tady schazi cyklem
$zzxx = $jedenslug->slug;
echo "$zzxx </br>";
$zzxx = array_unique($jedenslug->slug);
$slug = $zzxx; echo "$zzxx </br>"
... coz pak vysvetluje, proc tohle hlasi, ze to nemas v array, protoze $jedenslug->slug je string, jen jeden radek z pole. Ten by se sortoval jako pole pismenek a ne pole stringu.
Takze to musis cyklem presunout nejdriv do array a ne vypisovat pres echo.
Ja myslim, ze tam chces spis docilit
$nazvy[$polozka->slug] = $polozka->slug;
---
foreach ($xml->serial as $jedenslug) {
$nnn1 = $jedenslug->nazev;
$nnn = $nnn1;
$zzxx = $jedenslug->slug;
$slug = $zzxx;
//echo "$zzxx </br>";
$pole = array();
if (!in_array($nnn, $pole)) {
array_push($pole, $nnn);
{echo "$nnn </br>";}
}
}
Ty nemas ani tuseni o php, programovani, ze? :) Tak to je forum Prace a zakazky, inzerce.
Vynecham ty php zapisy a zkusim to trochu popsat.
$xml->serial // je nejake pole, ktere vypada treba takto
[nazev => 'tonda', slug => 'pivas'] // [index => hodnota]
Polem se da listovat dvema zpusoby. Bud znas indexy-klice(key) (obvykle ciselne) a nebo prochazis cele pole (obvykle textove indexy).
for (i=0; i<count(pole); i++) // ciselne, index = i, polozka = pole[i]
foreach (pole as key=>value) // textove, index = key, polozka = pole[key] = value
foreach (pole as value) // textove, polozka = value (kdyz nebudes pouzivat indexy pro dalsi php kod)
Takze v zavislosti na case dostanes toto
pole = [nazev => 'tonda', slug => 'pivas']
foreach (pole as value) ...
t = 0: value = 'tonda'
t = 1: value = 'pivas'
Za cyklem zustane jen
t = 2: value = 'pivas'
table = [ [nazev => 'tonda1', slug => 'pivas3'], [nazev => 'tonda2', slug => 'pivas4'] ] foreach (table as row) // databazove { // row['nazev']
// row['slug']
foreach (row as key => value)) {...} }
Prvni foreach ulozi do row = [nazev => 'tonda1', slug => 'pivas3'],.
Druhy foreach uvnitr prvniho cyklu pak z kazdeho radku ziska jmeno sloupce key a hodnotu ve sloupci
---
pole2 = array_unique(pole1); // [array]
jedenslug->slug [string]
Predstav si pole [array] jako kosik jablek a retezec jako jedno jablko. To proste neni totez a php pochopitelne krici chybu.
Kdyz pouziji zapis jako u predchozich prikladu, tak
row = [
'pivas3',
'pivas4'
]
row = array_unique(row); // ok
value = 'pivas3'; // pripadne by se to mohlo chovat jako row = ['p','i','v','a','s','3']; coz ale nechces
value = array_unique(value); // chyba
No, co s tim, sakra? Tak to uloz do pole, ne?
foreach ($xml->serial as $polozka) {
$nazvy[$polozka->nazev] = $polozka->slug;
}
$table = [class]
[nazev: 'tonda', slug: 'pivas'] nebo
[key: 'tonda', value: 'pivas']
$table2 = array();
foreach ($table as $row) {
$table2[$row->nazev] = $row->slug; // nebo
$table2[$row->key] = $row->value;
}
Cyklus vytvori table2 jako
[tonda: 'pivas']
Jenze table vypada treba takto
[nazev: ['tonda', 'kucera'], slug: 'pivas'] // nazev [array], slug [string]
[nazev: 'manas', slug: 'pivas'] // nazev [string], slug [string]
[nazev: , slug: 'pivas'] // nazev [null], slug [string]
[slug: 'pivas'] // nazev [undefined], slug [string]
Takze, pouzit pro tabulku 2 nazev nebylo nejstastnejsi reseni. A je treba to osetrit, prekonvertovat na string nebo cislo. Nebo proste nazev nepouzit a pro oboje pouzit slug
$table2[$row->slug] = $row->slug;
Mozna je tam pole. Si to vypis a uvidis. bude to radek pred error hlaskou.
...
var_dump($polozka);
$nazvy[$polozka->nazev] = $polozka->slug;
...
Mozna, zkus naspat, ceho se snazis docilit? Treba radio inputy se sdruzuji stejnym jmenem, ale totez muzes udelat s checkboxy jako prazdne pole "jmeno[]" (js: formX.jmeno, formX.jmeno[], formX['jmeno[]']). Nejsem si ted jisty, jestli by to fungovalo i jako "jmeno[jmeno2]" (js: jmeno.jmeno2 , jmeno['jmeno2']). Zkus a treba neco pujde.
Take si myslim, ze to nejde, ze cele to je povazovano za jmeno.
<form>
<input name="meno1 meno2" value=123>
</form>
<script>
alert(document.forms[0]['meno1 meno2'].value);
alert(document.forms[0]['meno1'].value);
</script>
Samozrejme, je tu moznost, pridavat k hash take casove razitko. Tak muze byt pro kazdou stranku ten hash jiny.
Kit - Takze mas v session nejaky hash misto jmena a hesla a mas pocit, ze je to bezpecnejsi? Ten hash pak overujes vuci hash v db nebo hash, ktery vyrobis z udaju z db pro id uzivatele? Takze je to totez, jako overovat jmeno a heslo. Jenom je to trosku zamlzene. Hackera to nijak nezmate. Prijde mi, ze vysledek tveho snazeni byl marny. Ale samozrejme pouzivam podobny postup :) Jen o tom neprohlasuji, ze je to super bezpecnejsi.