Venom
Moderatori-
Posts
1,918 -
Joined
-
Last visited
Everything posted by Venom
-
Nu, atceros gan, ka bija kaut kāds triks - vai nu iebāzt tajos AUTH_* kaut kādas liekas vērtības un uztaisīt meta refresh, vai nosūtīt to unathorised headeri pāri visiem jokiem.
-
vai nu taisi, piem "SELECT * FROM db" un baaz to visu failos, vai, piem. taisi jaunu db mysql_query("CREATE DATABASE db_backup;"); un baaz to visu vinjaa: mysql_query("INSERT * FROM pirma_db INTO db_backup"); vai arī bija kautkā SELECT INTO FILE vai OUTFILE, jebšu db tika eksportēta failā (comma-separated values CSV, vai kaut kā citādi), un to failu varēja vai nu nokopēt fiziski, vaiu pat nolejuplādēt ar tā paša php palīdzību (sk. kā tas darās phpMyAdminā).
-
Nu aizraujies uz phpAdmina direktoriju, gan jau tur ir kāds language/english||latvian vai arī kāds english.php/ini,latvian.php/ini/tpl - pārkopē pa virsu latviskam, vai ieskaties angliskajā un nomaini kaut kur encoding=iso-kaut-kas uz windows-1257
-
'index.php?param='.urldecode(iconv());
-
+ ir arī tas, ka Oracle/PotgreSQL pārsvarā domāti linuziem un arī kādu kapeiku var maxāt paši par sevi, tāpēc, ja jūzo windowus, vai serveris uz tām, tik un tā MySQL. Privātai lapelei pietiek arī ar txt-struktūru (skat. piem pods.lv - kas griežas uz teksta engīnes).
-
Kas teica, ka kūkiji pazūd ar browsera slēgšanu - voelliger Unsinn! - tas jau iet pretī tai domai, kam viņi vispār radīti! man: setcookie(); boolean setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]]) īpaši incants ir expire params. Nekriptētu paroli kūkijā - nekādā gadījumā, kaut vai stila pēc.
-
ja serveris ir uz linuziem, tad neradītu problēmas iconv(); ja uz windowes, tad varētu rasties problēmas, ja tas iconv.dll nav pieextensionots.
-
Mjā, smags gadījums. HTML ir lietotāja-puses kods, kas tiek pilnībā lejuplādēts tavā pārlūkā un jaut tas to apstrādā. PHP ir servera-puses kods, kurš, kā programma tiek izpildīts uz servera un tev atgriests tikai vajadzīgais HTML kods. piem. šis te uzsāk lapu: <?php echo '<html></html>'; ?> rezultātā tu redzi tikai to <html></html> Tev vajadzīgs serveris ("kompilātors"), kas apstrādātu php-skriptus. Pameklējies tematos ("par zuturēšanu"), tur ir gan advancēts variants, gan parastam mirstīgam pieejamā pakete, kas uzistallēs tev gan php, gan apache/mysql serverus.
-
iepostē, lūdzu kādu HTTP_USER_AGENT atgrieztu vērtību pilnībā (kā vienmēr php nav pa rokai).
-
Dažiem arī *.info skaitās trafiks (piem. man). Varbūt kāds, kuram ienākošais servera trafiks daudz/neko nemaksā varētu ievietot php-proxy veidīgu skriptu, resp.skriptu, kurā serveris noGETo ievadīto linku un tad pamazām iz_echo/passthru failu kā lejuplādi?
-
Man vienkārši škiet, ka cilvēkam koda bloki atkārtojās. Jājautā, vai v3rb0 izmanto funkcijas vai/un klases un cik lietpratīgi viņš izraksta html-u no php (vai nu visu ar echo/print, vai tomēr kaut kur pagādās includs). Varbūt kods ir "pārkomentēts"? v3rb0 - koda gabalu studijā!
-
Nu jamajā gadījumā, varētu būt jāskatās kādā veidā tika nodots parametrs, piem. ja tas ir jāizvēlas no <select>, tad tas varētu būt nodots caur $_GET, vai $_POST formām (sk. attiecīgi print_r($_GET); un print_r($_POST); kas tev katrā veidā "iet" iekš lapas) un tavas lapas refereri (sk. print_r($_SERVER);) - jebšu tas padots no linka tavā lapā. Ja tu uzskati par Ok, ja lietotājs pats ievada adreses laukā "index.php?param=taram", un parametri tev glabājas masīvā, jāparūpējas par ši masīva nosaukuma neatpazīstamību (pārsvarā tas jādara, ja tev ir register_globals ielēgti kā on) - lai kāds neuzmin, ka inklūdu masīvs tev saucās "include_array" un neiebaro kaut ko līdzīgu "index.php?include_array[]=attālināts.hackera.scripts&include=0" [tādejādi radot skriptā jaunu masīvu ar vienu faila nosaukumu un piepraōt to ieinklūdot, jo tas arī būs masīva "nulles" elements]. Vai nu vismaz tādu masīvu definēt kā konstanti (sk. man. define();)
-
offtopics: 2 m[aiK]ro: iepatīkās man tvas ķinķēzīņš (avatars) 2 K|NG: ja dari tādus ieteikumus, tad labāk pamāci cilvēkiem lietot preg_match, nevis ereg(i), citādi tev/viņam vēlāk uzbrauks virsū par to, ka preg strādā ātrāk, nekā ereg, bet pārsvara gadījumos pietiek arī str_* funkcijām.
-
Nu es piespiedus raxtu ar E_ALL (php.ini pēc noklusējuma ir E_ALL ~E_NOTICE), tas palīdz "ierūdīties" laba stila kodēšanā. Protams, uzreiz it kā atmet C/Pascal vidē, kur katrs mainīgais ir kārtīgi jādeklarē, tomēr kaut kāda lielāka drošība pret "hax0ru iebrukumiem" paša koda kļūmes pēc. Liels + ir "notice" ieslēgšanai, ja iznāk daudz strādāt ar cikliem un kāds no tiem "ieciklējas", tāpēc, ka cikla mainīgais nav bijis pareizi nodefinēts. Arī ja gribēsi virzīties uz citām "augstākā" līmeņa valodām, vajadzēs pierast pie stingrās variābļu definēšanas. Vari darīt to jau tagad. Mans viedoklis - raxti normālas klases/funkcijas, kurās visādi "vājpunkti" (failu atvēršana, savienošanās ar datu bāzi) tiek pēc koda pabeigšanas noklusinātas ar @, tātad funkcijām jāatgriež ne tikai prasāmā vērtība, bet arī true/false/error paziņojums. Pēc koda pabeigšanas (vai kādā no "beigu" stadijām) liec error_reportingu pēc defaulta un met virsū uz servera. Agri vai vēlu ar šo problēmu nāksies saskārties, gandrīz tāpat kā ar register_globals un output_buffering=off (abi).
-
Jautājums, vai viņš teff tiek izmantots visu 62Kb pilnā apmērā? Ja nē, tad dali pa failiem un includo etc. Vai ir citi faili, kuri tiek izmantoti? Un kas tef tur tik daudz uz 62Kb?
-
Nevis lietotāju katram kompim, bet kūkiju katram kompim. Var izmantot arī statiskās sesijas (glabājamas uz servera). Bet parasti jau nodot parametrus vajag tikai ielogojoties un šo faktu "piefiksējot", lai atkal neprasa logoties. Tam varētu noderēt kūkijs ar mazu noilguma laiku, vai arī parametru nodošana sessijā. Es vairāk lietoju dinamiskās sesijas - tās glabājas uz servera līdz čels slēdz savienojumu, bet ja nevar tās saglabāt uz servera, tas pats sessiju mehānisms mēģina ielasīt tās kūkijā automatiski. PS> kūkijos paroli un usrnamu neviens saprātīgs kodētājs neglabā.
-
Tikai piezīmei: Un tad nāks Briesmīgs Hakeris un sacīs: ieincklūdo man servera/lapas konfigurāciju vai parādi lapas izejkodu. Ja tiešām vēlies rādīt lapas ar includu, netaisi tādas glupības, ka var ieenklūdot kādu index.php&include=tāds_un_tāds.html. Vai nu glabā tos failu nosaukumus masīvā, un čeko, if (in_array($_GET['include'],$atlautie_faili)), vai nu vismaz pārbaudi extention (.php, .jpg utt), nodod parametru kā masīva indexu: $atlautie_faili=array('start'=>'../var/pub/index.html','end'=>'etc/usr/end.php','one.txt','two.txt'); un tad index.php?include=start || index.php?include=1. Pirms includa liec @ zīmi: @include_once('kāds.fails.kas.varētu.nebūt.atrodams.vai.gļukains.pēc.būtības'); Nu un vispār par include nodošanu varētu daudz nodziedāt. P.S. ja izmanto tamstera metodi, tad labāk izmanto: switch($include) { case 'param': include('šo'); break; case 'param1': include('šo1'); break; case 'param2': include('šo2'); break; case 'param3': include('šo3'); break; default 'tādas.laps.nav.txt'; } utml
-
Nu ja jau iepostēji php forumā, tad mans "sovets" teff ir taisīt pakāpenisku formas aizpildi: step 1) izveelas OS. Spiezh submit. Ar php iehavo OS variabli un step 2) gjeneree attieciigo selectu, kur ir tikai attieciigas izveeles. Ja gribi taisiit visu ar JS. Vareetu taisiit a) relatiivi viegli. Katram "otram" select elementam pievienot iekš 'value' kaut ko, kas defineetu, kurai OS utt tas atbilst. Piem. kaut kas liidziigs <option value='LIN:LYNX'>, pašam selectam uzliekt onchange='funkcija_kas_paarbauda_atbilstiibu()', kuraa dazhaadiem veidiem izčeko atbilstību iepr. elementam ar kādu if lastIndexOf(), substring(), charat() utt document.form.pirmais.value nav atrodams document.form.paklautaa.value, tad atgriezh paklaujto uz kaadu indexa elementu, piem uz <option value=''>. b ) relatīvi hemoroīdi DHMLiski mainīt dokumenta InnerHTML un visādus InsertAdjacentHTML utt, bet tur jāsaprot arī JS Objektu modelis un nekādas garantijas pārlukam X izņemot pārsvaru IE.
-
hosts.frm varētu būt galvenās mysql bāzes sastāvdaļa, tāpēc pie viņas jābūt full accessam pašam mysql dzinuliem un arī pārējiem. Frm-us var arī dāžreiz dzēst ārā - tie paši izveidosies. P.S.> frm = form, cik zinu, pašā MySQLā formas vēl nav implementētas
-
Paskat vai tev konfigaa noteikts tas "log" folderis un vai tas ir izveidots uz cietā. Pamēģini http.pid vietā iemest kādu tukšu texta failu.
-
\n - new line feed \r - carriage return Windows texta failos lines beidzas ar \r\n vai apgriezti (nu visdpaar greizi), linuxaa tikai ar \n. Taapeec var pats samainiit line beigas proceduuru, piem. $str=str_replace("\n",'</p><p>',$str); echo '<p>'.$str.'</p>'; veel interesants imbols ir tabulaacija - \t. Uzmaniet, ka shie simboli ieraxtaami "divkaarshaas" peedinjaas, nevis 'apostrofos', jo citaadi nenjemsies pretii tas escape-slashs
-
Skaties manuāli pa regular expressions. Kā vienmēr nav pa rokai, tāpēc uz dullo kaut kas līdzīgs: preg_match('/\*(.*)\*/U',$a,$result); Ja esi pārliecināts, ka visi * tef būs vienmēr "aizvērti", tad vari uztaisīt tai stringai $array=explode('*',$a); tad arrayā tev būs katrs pāra elements tas, kas bija starp *. Atliek vien for ($n=0;$n<=count($array-1);$n+=2) { $result[]=$array[n]; } vai kaut kā.
-
getenv strādā ne vienmēr, labprātāk lietoju caur superglobāli $_SERVER: REMOTE_ADDR,HTTP_CLIENT,HTTP_X_FORWARDED_FOR ($_SERVER['REMOTE_ADDR'] utml.) Un labāk čeko visus kopā, tāpēc ka tādam, kam ir HTTP_CLIENT varētu būt arī forwarded for, dažiem ir visas trīs, dažiem var sakrist remote, kad nevar dabūt client ar cita client, kuram nevar dabūt remote. Tā lūk.
-
pateikšu arī savu vārdu: 1. Mācies HTML un CSS - kā teksta formatēšanas valodas. Vari dariīt to pašu, ko dara tevis vietā Words (vai no ko kurš lieto). 2. Mazliet iemācies JavaScript, lai saprastu kas ir objekts un kā tiek nokļūts līdz lapas dažādiem elementiem. Šeit neiztiks bez saprašanas kas ir forma un tās dažādie elementi, to nodošanas veidi utt. 3. Sāc mācīties PHP, kas apstrādājot dažādus (arī no formām) iesūtītos elementus, saliks kopā html dokumentu, kurā var būt viss augstākminētājs. 4. Vīspārīgā saprašana par datu bāzi un vaicājumu veidošanas valodām. SQL un tā paveidi (MySQL utt.). man ceļš bija Turbo Pascal>Html>JavaScript>CSS>Delphi (Object Oriented Pascal)>PHP>SQL>VBScript>VBA>C++>Java - pēdējos 4 - mācību vajadzībām sākuma līmenī, tāpēc, ka pietiek jau ar iepriekšējām. Bet pārzinot tos 4 soļos norādītos varēsi orientēties arī citās valodās (daudzu citu valodu kodus māku izlasīt un saprast, bet pats raxtīt neņemtos).