yeahz Posted June 15, 2009 Report Posted June 15, 2009 Nekad man tas nav paticis un ir radījis problēmas tas, ka ja ir, piemēram, input lauks, kurā es savadu datus spiežu pogu un ilzec kāds errors ka kaut kas nav kā vajadzetu būt, nu neko, nākas spiest atpakaļ (back pogu) un ko es tur ieraugu? - tukši visi mani input lauki kurus biju sarakstījis un tagad man to nākas darīt vēlreiz. Kā lai to labo, lai būtu dati palikuši? Tā tas vienmēr ir bijis tikai ar tām lapām kuras es taisu, ieejot jebkurā citā lapā un izmēginot izmest erroru un spiežot back, viss ir savās vietās. Quote
werd Posted June 15, 2009 Report Posted June 15, 2009 <input type="text" name="username" value="<?=$_POST['username']?>"/> Quote
endrju Posted June 15, 2009 Report Posted June 15, 2009 (edited) <input type="text" name="username" value="<?=$_POST['username']?>"/> Hehe, atkal ne līdz galam. Tā tie saiti ar XSS rodas. Hint: kas notiks, ja input laukā ievadīs pēdiņas, "<" vai ">"? Edited June 15, 2009 by endrju Quote
werd Posted June 15, 2009 Report Posted June 15, 2009 Tāpēc, ka tas ir piemērs, kā to izdarīt! Tas, kā padot konkrētos datus, ir katra paša ziņā. Quote
indoom Posted June 16, 2009 Report Posted June 16, 2009 hmm, kādā veidā, nospiežot browsera back, tiek ielikti inputā POST dati? To var darīt bez back spiešanas, ja errori rādās tajā pašā lapā, uz kuru notika posts, un kurā atrodas forma, bet bez redirekta. Par to, ja nospiež back pēc posta un visi lauki saglabājas, man liekas, ir atkarīgs no browsera paša. Cik esmu ievērojis, tad vismaz Firefox3 saglabā formas datus, izmantojot browsera back, kā arī uz soft refresh, bet arī ne vienmēr. Normāli uz back, ja vien neizmantos kādus kūkijus, kas uz submitu saglabā datus, dati nebūs saglabājušies. Cita lieta, ja back ir taisīts kā poga, kas submito datus atpakaļ uz formas lapu. Quote
werd Posted June 16, 2009 Report Posted June 16, 2009 (edited) Jā, protams, tas bija attiecināms uz gadījumu, kad lietotājs netiek nekur sūtīts tālāk. Lai saglabātu datus pēc history.back() izpildes, datus jāsaglabā, piemēram, sesijā. Edited June 16, 2009 by phpjanis Quote
yeahz Posted June 17, 2009 Author Report Posted June 17, 2009 Hint: kas notiks, ja input laukā ievadīs pēdiņas, "<" vai ">"? Kas tad notiek, nekas nenotiek, es izmēģināju. :D Tad tā nedrīkst rakstīt, vai man nāksies visu sesijā saglabāt? Quote
marcis Posted June 17, 2009 Report Posted June 17, 2009 Darīt tā drīkst, tikai pirms tam mainīgais jāapstrādā ar htmlspecialchars(). P.S. "<" vai ">" viens pats neko neizdarīs, bet savienojumā ar " vai ' gan šo to var panākt. Quote
yeahz Posted June 17, 2009 Author Report Posted June 17, 2009 Vai šādi ar vienu funkciju pietiks? function quote_smart($value) { if (get_magic_quotes_gpc()) { $value = stripslashes($value); } if (!is_numeric($value)) { $value = "'" . mysql_real_escape_string($value) . "'"; } return htmlspecialchars($value); } Quote
bubu Posted June 17, 2009 Report Posted June 17, 2009 htmlspecialchars vajag pielietot izvadot informāciju (t.i. pēc datu izvilkšanas no DB). Quote
yeahz Posted June 17, 2009 Author Report Posted June 17, 2009 (edited) Nu tad es nesaprotu kā man rīkoties. Man pašlaik viss izskatās šādi: <input type="text" name="name" value="<?php echo $_POST['name']; ?>" /> pēc tam uz $name = quote_smart($_POST['name']); mysql_query("INSERT INTO table (name) VALUES ($name)"); un tam quote_smart() esmu noņēmis htmlspecialchars(). Tātad vēl man kaut kas šeit ir jāizdara? PS strādāt jau viss strādā lieliski, bet es domāju par drošību šeit. Edited June 17, 2009 by yeahz Quote
marcis Posted June 18, 2009 Report Posted June 18, 2009 SQL pieprasījumu drošība jau ir cita tēma, te mēs runājām par XSS :) P.S. <input type="text" name="name" value="<?php echo htmlspecialchars($_POST['name']); ?>" /> Quote
Kemito Posted June 18, 2009 Report Posted June 18, 2009 (edited) Veids labāks kā datus saglabāt DB nav labāk ar Formu + $_POST? Teiksim: [qoute] <?php if(isset($_POST['add'])) { vaidzīgais kverijs! } echo'FORMA'; ?> [/qoute] Edited June 18, 2009 by Kemito Quote
marcis Posted June 18, 2009 Report Posted June 18, 2009 Kemito, seko līdzi tematam. Te nav nekāda sakara ar to, ko tu pateici, bet ideja koda struktūrai ir pareiza. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.