endrju
-
Posts
111 -
Joined
-
Last visited
Posts posted by endrju
-
-
vispārīgāk runājot, es inputu iedalu 2x veidos
1) iekšējais - developer ierakstītās vērtības/konstantes, ko padod/izmanto funkcijās. kā arī tās vērtības, kas kkad ir ienākušas no ārpuses un pēc pārbaudes/apstrādes tgd ir drošas
2) ārējais - viss kas ir ienācis no ārpuses un vēl nav pārbaudīts (kad es teicu "user input", es domāju tieši par šo)
jebkādam inputam neuzticēties būtu stulbi, jo ja pats neuzticies sev un vienai savai funkcijai liec vēlreiz pārbaudīt vērtības, ko padod cita tava funkcija, kas jau tās ir pārbaudījusi, tad tā ir kkāda pesimistiska paranoja. parasti plānojot applikācijas arhitektūru, drošības pārbaudēm ir savs līmenis, kurā tiek veiktas visas ar drošību saistītās darbības. bet citi līmeņi tālāk jau saņem drošus datus un var specializēties uz savu darbu
tikai nesaki atkal, ka tas ir overheads. noteikti atradīsies kāds, kas par to nebūs aizdomājies :D
nē, nu viss ok. skaidrs, ka tā nav diskusija tikai divatā. lasa arī citi. gan jau kādam noderēs.
btw, tas labi, ka lasi grāmatas ;)
khh, vai tad tik nožēlojamā stāvoklī 21. gs. esam, ka par to kinda of "jāuzslavē"?
citēju ne jau tāpēc, lai parādītu, ka kaut ko lasu, bet adekvāti iederējās.
pats vai tad neko nelasi?
-
nav runa par int/float
pielietojums ir vispārīgāks: skaitlis & teksts
qn() saņem vērtību, kurai ir jābūt skaitlim. ja padotā vertība nav skaitlis, tad pēc tam toč būs
qs() saņem stringu, un eskeipo to, ko vajag eskeipot
varēji vienkārši atbildēt, ka arī integer gadījumā Tu lieto qn(), t.i., (float) typecast.
p.s. skaidrot ko funkcijas dara gan bija redundant overhead.
-
Sakarā ar to, ka pievēršat drošībai un administrēšanai lielu nozīmi, novēlu Jums veiksmi atrast kārtējo pseido-programmētāju!
information disclosure mazāk nekā minūtē, step-by-step:
1) atveram hxxp://www.coremedia.lv/
2) redzam linku hxxp://www.coremedia.lv/lv/kontakti
3) nomainam linku uz hxxp://www.coremedia.lv/lvv/kontakti un saņemam error-msg:
Warning: Invalid argument supplied for foreach() in /var/www/coremedia/data/www/coremedia.lv/index.php on line 74
Vai cik jauki! Produkcijas serveris lieto error_reporting.
5) meklēšanā ierakstām "%" un saņemam error-msg:
Warning: Invalid argument supplied for foreach() in /var/www/coremedia/data/www/coremedia.lv/pages/inc_search.php on line 44
Vai cik jauki! Tak full-path redzam!
7) atveram hxxp://coremedia.lv/pages/inc_search.php un saņemam error-msg:
Fatal error: Call to a member function getPagination() on a non-object in /var/www/coremedia/data/www/coremedia.lv/pages/inc_search.php on line 3
9) atveram hxxp://coremedia.lv/pages/ un redzam:
[ ] inc_form.php 10-Feb-2009 22:47 5.1K [ ] inc_pages.php 10-Feb-2009 22:40 1.9K [ ] inc_search.php 08-Dec-2008 23:01 4.6K [ ] inc_startpage.php 08-Dec-2008 23:01 36
Vai cik jauki! "Options +Indexes"
P.S. Tas viss nudien ātrāk par minūti. Retorisks jautājums: ko var izdarīt ilgākā laika posmā?
Un tikai nevajag par kurpnieku bez kurpēm.
-
;D visi tadi neapmierinaati , agresiivi .
Ko Tu īsti gribi? Ja gribi, lai kāds Tev priekšā uzraksta, tad tā arī pasaki.
---
Q: kā?
A: Ar JavaScript.
---
Q: piemēri?
-
fabula ir ļoti vnkārša: nevajag uzticēties user inputam
Gandrīz precīzi. Precīzāk būtu - jebkādam inputam.
Citešu no grāmatas "Beautiful Security" (2009):
When we asked the senior Microsoft representatives at dinner why they did not send malicious data or provide malformed files as input to their product's testing, the answer was, "Why would a user want to do that" Their faces bore looks of shock and dismay that anyone would intentionally interact with a piece of software in such a way as to intentionally try to make it fail.Tas attiecas uz citāda veida inputiem, piemēram, xml+rpc; include() caur parametru vai htaccess, u.c. veidiem, kur tiek saņemts jebkāds inputs, ko useris var manipulēt - ne vienmēr tikai paredzētajā (GUI formas) veidā.
servera puses "drošībai" (pret sql injekcijām) lieto
function qn($n) {return is_null($n) ? 'NULL' : (float) $n;} // sagatavo skaitli for mysql query function qs($s) {return is_null($s) ? 'NULL' : "'" . mysql_real_escape_string($s) . "'";} // sagatavo stringu for mysql query
Kāpēc float izpelnījies savu funkciju, bet integeri ne?
Ok, jautāšu uzreiz - kāpēc integerus escape-o nevis typecast-o?
-
Jāsaka ir tā, ka koderus arī skārusi krīze, nevajag jau liegties, pats esmu par 3 gadiem pirmo reizi sludināju ieliecis, kā arī beidzot kantora webu sācis veidot, tas viss dēļ tiem pidariem, kas nezin neko un tēlo, šajā forumā tādi ir daudz un dikti. Lai kāds man piedod, ja kādu aizkāru, bet tā tas ir. :)
1) kādu sludinājumu ielicis?
2) tautai jāzin savi varoņi.
-
Vari lūdzu pateikt arī, kā to e parametru ir jānorāda konkrētajā gadījumā? Uzgooglēju piemērus, bet visur ir tādi pavisam elementāri ar vienu mainīgo un /e vienkārši galā pieliktu. Piemēri darbojas, bet lai kā es mēģinātu to e iebarot šeit, kaut kas nesanāk. Nav īsti pārliecības kur vinu jāliek ar visiem tiem "#" un tamlīdzīgi. Regulārās izteiksmes man vispār izskatās pēc ķerburu rindas :/
Pārveidojot Tavu kodu:
function mad182($sID) { return '[' . substr($sID, 0, 2) . ']'; } $text = 'http://www.youtube.com/watch?v=D_FxNaD8fDs'; echo preg_replace("#(^|[\n ]|<a(.*?)>)http://(www\.)?youtube\.com/watch\?v=([a-zA-Z0-9\-_]+)(</a>)?#ime", 'mad182(\\4)', $text);
P.S. Tava regulārā ekspresija neķers visus youtube URL pareizi (ja aiz ID vēl kas ir). Iedomājies, ka URL ir youtube.com/watch?v=ID⊂=...
-
vai tad MySQLam ir drošības caurumi?
L-O-L.
1) Atver-am http://www.securityfocus.com/vulnerabilitie
2) izvēlamies Vendor kā "MySQL AB"
3) ejam cauri 3 lapām.
Pēdējais remote-exploit 2010. gada 6. janvārī (pirms nedēļas) - http://www.securityfocus.com/bid/37640/info
Un neaizmirsti, ka tie ir *publiski* pieejamie.
Vēl jautājumi?
-
Vai kādam ir informācija par browser-iem, kuri strādā nekorekti? Respektīvi:
Izsūta header-os
If-Modified-Since
vai
If-None-Match (Etag)
tad, kad aplūko jaunu failu, vai gadījumā, ja iekš browser-a cache nemaz tāds fails nav.
-
pat ja otrs db serveris fiziski būtu kkur citur/tālu, tad var arī atļaut piekonektēties no ārpuses un ņemt datus pa taisno, nevis caur kkādu http/xml layeri
vai, vai! saberzējam rokas un exploit-ojam 3306.
-
Lieto 'e' (PREG_REPLACE_EVAL) modifier.
-
izmantojot ODEBC vari konverteet uz JEBKURU formatu ...
MSSQL sajaa zinjaa ir ljoti baagaats...
pats personiigi Esmu pardzinis no MSSQL uz MYSQL ( tikpat labi tur vareja buut Jbkura SQl bazeeta sisteema)
Pat neizmantojot nekaadus starpfailus ... viens konkrets ODBC konektors un miers....
Neesmu baigi ODBC mīcījis. Pievienojis esmu, bet tikai jau reāliem produktiem.
Respektīvi, ar ko tos datus pēc tam dabūt ārā?
ja pareizi atceros vareja arii iedziit MySQL damp failaa --> lasi plain textaa..
Tieši to man vajag - plain/textā. Caur to pašu ODBC, saki?
-
MSSQL nemāku, bet google pateica šādus linkus:
RAW formāts galā.
http://sqldump.sourceforge.net/
Kāds no tiem neder?
Pēdējā ir 2002'a gada relīze. Var jau pamēģināt, neesmu drošs, ka uz 2005/2008 viss būs kārtībā.
-
Kā var eksportēt MSSQL tabulu struktūras un datus tā, lai iegūtu izpildāmus SQL queries? Lai rezultātā būtu "CREATE TABLE .." un "INSERT INTO ...".
Respektīvi, analoģiski ko iegūst MySQL ar mysqldump. Tiesa, iekš MySQL tabulas struktūru var iegūt arī ar "SHOW CREATE TABLE `tabula`".
Līdz šim MSSQL tabulas sanācis eksportēt/importēt ar SQL Management Studio un tikai visu datubāzi, bet tās ir raw formātā, respektīvi, .bak faili un tie ir reāli PITA, kad pārliek uz citu serveri.
-
Tieši tā - reversais proxy ir atbilde.
Pats lietoju pound, tiesa, man rūteris ir dators, nevis maza kastīte ar firmware.
Ja gribi iztikt bez reverse proxy, tad ir divi risinājumi:
1) dabūt vēl kādu ārējo IP adresi
2) lietot citu portu otram web serverim
-
if ( in_Array($blaah))
+1, tikai tā $blaah vietā pašu array() uzreiz nodefinē.
-
Kas attiecas uz css/html/js, tad no w3schools lapas ir jāmūk kā vellam no krusta.
Jo?!?
-
Tirgus cena php programmerim ir no 200 līdz aptuveni 600 Ls uz rokas (nezinu kādam monstram jābūt php programmerim, lai maksātu vairāk par 600 Ls uz rokas). Nu 200 Ls jau būs iesācējam.
Bwaahhahhahahaa, you always make me smile.
-
Offtopic, bet Jums, ļautiņi, ir vienkārši fantastiskas zināšanas par IQ :)
-
Nevis pēdiņas ("), bet gan (`). Tā ir cita zīme. Tu pats pirmajā SELECT pie FROM tādas biji lietojis ap tabulas nosaukumu.
Nu, ok, un ko Tev izdod šāds selekts: "SELECT `obj_Id` FROM `characters`" ?
-
nevar tos nosaukumus kaut kā izdzēst?
Kas ir eskeipot?
Mēģiāju ar `` neizdevās jo tālāk sačakarējas
1. Kur ir izvads "DESCRIBE `characters`"?
2. Eskeipot Tavā gadījumā nozīmē kolonu rakstīt kā: "`obj_id`" nevis "obj_id" (bez pēdiņām).
3. Nu un ko nozīmē "tālāk sačakarējas"?!? Kas čakarējas? Kur ir ievads (ko ievadīji), kur ir izvads (kļūdas paziņojums)? Mmmm?!
Es nesaprotu kādu palīdzību te ceri sagaidīt, ja ne Tu atbildi uz jautājumiem, ne izpildi elementāras lietas un nemāki paskaidrot problēmu?
P.S. http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html
-
Parādi, ka tiešām tāda tabula ir: DESCRIBE TABLE `characters`
Ja patiešām ir, raksti to kolonu tā: `obj_id`
P.S. Ir specifiski nosaukumi, kurus MySQL rezervē, tāpēc vajag eskeipot kolonas.
-
Un - kods ir balstīts uz to pašu $_SERVER['PHP_AUTH_USER'].
Tad sanāk akli uzticēties headerim, vai ne? Respektīvi, no headeriem var dabūt domēnu/useri, bet ne paroli. (Vismaz man tā pašlaik ir).
-
Šitā neder?
header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: NTLM'); exit(0);
Pārbaudīju ko dara SharePoint. Izrādās, ka tieši to pašu. Būtu ņēmis uzreiz manu kodu, nevis pļurgājies.
Jubilāru izvilkšana pa smuko
in Datubāzes
Posted
UNION