Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
php obchrana SQL

Registrovaný: 15.05.09
Prihlásený: 20.12.13
Príspevky: 81
Témy: 29
Bydlisko: Nitra
Príspevok NapísalOffline : 27.06.2009 20:54

zdravím nemám moc skúseností s ochranou... mohli by ste mi pomoct ako ochraniť tentp PHP script ?

Kód:
<?php
if(isset($_POST["ok_prevod"]))
{
if($_SESSION["captcha"] == $_POST["captcha"]) {
$acc1 = $_POST["acc1"];
$pass1 = $_POST["pass1"];
$mail1 = $_POST["mail1"];
$www2 = $_POST["www2"];
$realm2 = $_POST["realm2"];
$acc2 = $_POST["acc2"];
$pass2 = $_POST["pass2"];
$mail2 = $_POST["mail2"];
$char2 = $_POST["char2"];
$poznamka2 = $_POST["poznamka2"];
 
 
mysql_query("INSERT INTO `prevod`(id,acc1,pass1,mail1,www2,realm2,acc2,pass2,mail2,char2,poznamka2,visible) VALUES(NULL, '$acc1', '$pass1', '$mail1', '$www2', '$realm2', '$acc2', '$pass2', '$mail2', '$char2', '$poznamka2',1);");
 
echo "<script>alert('Požadavak byl úspěšně odeslán, o průběhu budete informování e-mailem.')</script>";
} else { echo "<script>alert('Špatně opsaná captcha!')</script>"; }
}
 
echo "
<br><br>
<center><h3>Převod postav</h3></center><br>
 
<br>
- Prevod prebieha z dôveryhodných free serverov. (ktoré sú dôveryhodné rozhoduje sám admin)<br>
- Rate serveru z ktorého sa prevádza nesmie byť väčší ako má eXperience tj. 2x.<br>
- Je potrebné zadať údaje k prihláseniu na tento server + na server z ktorého chcete postavu
&nbsp;&nbsp;previesť. Pokiaľ tieto údaje nevyplníte, admin sa nebude ďalej prevodom zaoberať.<br>
- Prevádzajú sa postavy od lvl 35 a viac.<br>
- Postava ktorá bude prevedená na náš server bude na pôvodnom kompletne zmazaná!<br>
- Prevádzajú sa tieto veci:<br>
&nbsp;&nbsp;&nbsp;&nbsp;- Všetky Skilly<br>
&nbsp;&nbsp;&nbsp;&nbsp;- Goldy<br>
&nbsp;&nbsp;&nbsp;&nbsp;- Bagy <br>
&nbsp;&nbsp;&nbsp;&nbsp;- Itemy v bagu (len 16 itemov sa prevádza ktoré si vyberiete)<br>
&nbsp;&nbsp;&nbsp;&nbsp;- Reputácie (len s dôležitými mestami)<br>
- Zadajte <b>PLATNÝ</b> e-mail. Naň Vám potom príde informácia, či bola postava prevedená alebo
&nbsp;&nbsp;nie.<br>
- Všetky vaše otázky smerujte na fórum eXperience <a href=\"http://forum.wow-experience.eu/viewforum.php?f=46\">Fórum</a>.<br>
- Vo formulári je potrebné vyplniť všetky údaje.<br>
- Prevod prebehne v čo najkratšej dobe.
 
 
<form action='#' name='post' method='post'>
<table>
<tr><td colspan='3'><b>Údaje k přihlášení na eXperience</b></td></tr><br>
<tr></tr>
<tr><td>Account</td><td><input type='text' name='acc1' value=''></td></tr>
<tr><td>Heslo</td><td><input type='password' name='pass1' value=''></td></tr>
<tr><td>E-mail</td><td><input type='text' name='mail1' value='@'></td></tr>
<tr></tr>
<tr><td colspan='3'><b>Údaje k přihlášení na server, ze kterého se bude převádět postava</b></td></tr><br>
<tr></tr>
<tr><td>Stránky serveru</td><td><input type='text' name='www2' value=''></td></tr>
<tr><td>Realmlist</td><td><input type='text' name='realm2' value=''></td></tr>
<tr><td>Account</td><td><input type='text' name='acc2' value=''></td></tr>
<tr><td>Heslo</td><td><input type='password' name='pass2' value=''></td></tr>
<tr><td>E-mail</td><td><input type='text' name='mail2' value='@'></td></tr>
<tr><td>Název postavy k převedení</td><td><input type='text' name='char2' value=''></td></tr>
<tr><td>Poznámka</td><td><textarea name='poznamka2' cols='28' maxlength='1000' rows='5'></textarea></td></tr>
<tr><td>Opište prosím černé znaky: <br><img src=\"images/captcha.php\"></td><td><input type=\"text\" value=\"\" name=\"captcha\"></td></tr>
 
</table><br>
<center><input type='submit' class='button' name='ok_prevod'></center>
</form>";
 
?>


Offline

Čestný člen
Čestný člen
php obchrana SQL

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 27.06.2009 21:21

Pohladaj tu na fore v uzitocnych skriptoch fciu safety() od stenleyho. V podstate ide o to, osetrit znaky ', \, velmi sa hodi pridat aj htmlspecialchars() kvoli lt a gt. A odporucam kontrolovat aj format, napriklad ak je to pole email, tak pouzit vhodny regexp.


Offline

Užívateľ
Užívateľ
php obchrana SQL

Registrovaný: 15.05.09
Prihlásený: 20.12.13
Príspevky: 81
Témy: 29
Bydlisko: Nitra
Príspevok Napísal autor témyOffline : 27.06.2009 22:54

takto by to mohlo byť ošetrené proti SQL injection?

Kód:
<?php
if(isset($_POST["ok_prevod"]))
{
if($_SESSION["captcha"] == $_POST["captcha"]) {
$acc1 = strtoupper($_POST["acc1"]);
$pass1 = sha_password($_POST["pass1"]);
$mail1 = addslashes($_POST["mail1"]);
$www2 = addslashes($_POST["www2"]);
$realm2 = addslashes($_POST["realm2"]);
$acc2 = strtoupper($_POST["acc2"]);
$pass2 = sha_password($_POST["pass2"]);
$mail2 = addslashes($_POST["mail2"]);
$char2 = addslashes($_POST["char2"]);
$poznamka2 = addslashes($_POST["poznamka2"]);

$sql = "INSERT INTO `prevod`(id,acc1,pass1,mail1,www2,realm2,acc2,pass2,mail2,char2,poznamka2,visible) VALUES(NULL,'$acc1','$pass1','$mail1','$www2','$realm2','$acc2','$pass2','$mail2','$char2','$poznamka2',1)";
mysql_query($sql);          
echo "<script>alert('Požadavak byl úspěšně odeslán, o průběhu budete informování e-mailem.')</script>";
} else { echo "<script>alert('Špatně opsaná captcha!')</script>"; }
}

echo "
<br><br>
<center><h3>Převod postav</h3></center><br>

<br>
- Prevod prebieha z dôveryhodných free serverov. (ktoré sú dôveryhodné rozhoduje sám admin)<br>
- Rate serveru z ktorého sa prevádza nesmie byť väčší ako má eXperience tj. 2x.<br>
- Je potrebné zadať údaje k prihláseniu na tento server + na server z ktorého chcete postavu
&nbsp;&nbsp;previesť. Pokiaľ tieto údaje nevyplníte, admin sa nebude ďalej prevodom zaoberať.<br>
- Prevádzajú sa postavy od lvl 35 a viac.<br>
- Postava ktorá bude prevedená na náš server bude na pôvodnom kompletne zmazaná!<br>
- Prevádzajú sa tieto veci:<br>
&nbsp;&nbsp;&nbsp;&nbsp;- Equipment (celý)<br>
&nbsp;&nbsp;&nbsp;&nbsp;- Všetky Skilly<br>
&nbsp;&nbsp;&nbsp;&nbsp;- Goldy<br>
&nbsp;&nbsp;&nbsp;&nbsp;- Bagy <br>
&nbsp;&nbsp;&nbsp;&nbsp;- Itemy v bagu (len 16 itemov sa prevádza ktoré si vyberiete)<br>
&nbsp;&nbsp;&nbsp;&nbsp;- Reputácie (len s dôležitými mestami)<br>
- Zadajte <b>PLATNÝ</b> e-mail. Naň Vám potom príde informácia, či bola postava prevedená alebo
&nbsp;&nbsp;nie.<br>
- Všetky vaše otázky smerujte na fórum eXperience <a href=\"http://forum.wow-experience.eu/viewforum.php?f=46\">Fórum</a>.<br>
- Vo formulári je potrebné vyplniť všetky údaje.<br>
- Prevod prebehne v čo najkratšej dobe.


<form action='#' name='post' method='post'>
<table>
<tr><td colspan='3'><b>Údaje k přihlášení na eXperience</b></td></tr><br>
<tr></tr>
<tr><td>Account</td><td><input type='text' name='acc1' value=''></td></tr>
<tr><td>Heslo</td><td><input type='password' name='pass1' value=''></td></tr>
<tr><td>E-mail</td><td><input type='text' name='mail1' value='@'></td></tr>
<tr></tr>
<tr><td colspan='3'><b>Údaje k přihlášení na server, ze kterého se bude převádět postava</b></td></tr><br>
<tr></tr>
<tr><td>Stránky serveru</td><td><input type='text' name='www2' value=''></td></tr>
<tr><td>Realmlist</td><td><input type='text' name='realm2' value=''></td></tr>
<tr><td>Account</td><td><input type='text' name='acc2' value=''></td></tr>
<tr><td>Heslo</td><td><input type='password' name='pass2' value=''></td></tr>
<tr><td>E-mail</td><td><input type='text' name='mail2' value='@'></td></tr>
<tr><td>Název postavy k převedení</td><td><input type='text' name='char2' value=''></td></tr>
<tr><td>Poznámka</td><td><textarea name='poznamka2' cols='28' maxlength='1000' rows='5'></textarea></td></tr>
<tr><td>Opište prosím černé znaky: <br><img src=\"images/captcha.php\"></td><td><input type=\"text\" value=\"\" name=\"captcha\"></td></tr>

</table><br>
<center><input type='submit' class='button' name='ok_prevod'></center>
</form>";

?>


Offline

Užívateľ
Užívateľ
php obchrana SQL

Registrovaný: 04.04.08
Prihlásený: 27.02.12
Príspevky: 531
Témy: 27
Bydlisko: Nitra
Príspevok NapísalOffline : 28.06.2009 0:15

Čiastočne to zabezpečené máš. Pridaj ešte htmlspeciachars() príp. strip_tags() a mail, ako spomínal Ďuri, kontroluj cez reg. výraz a to isté aj s webom. Ešte by som ošetril aj tie $acc1 a $acc2.







_________________
V príprave...
Offline

Užívateľ
Užívateľ
php obchrana SQL

Registrovaný: 15.05.09
Prihlásený: 20.12.13
Príspevky: 81
Témy: 29
Bydlisko: Nitra
Príspevok Napísal autor témyOffline : 28.06.2009 9:01

P3CKIV píše:
Čiastočne to zabezpečené máš. Pridaj ešte htmlspeciachars() príp. strip_tags() a mail, ako spomínal Ďuri, kontroluj cez reg. výraz a to isté aj s webom. Ešte by som ošetril aj tie $acc1 a $acc2.


ako by si ošetril $acc1 a $acc2 ? :D (som v tom len nováčik a učím sa)


Offline

Čestný člen
Čestný člen
php obchrana SQL

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 28.06.2009 9:04

No tak isto, ako si osetril tie ostatne:
Kód:
$acc1 = strtoupper(addslashes($_POST["acc1"]));


Offline

Užívateľ
Užívateľ
php obchrana SQL

Registrovaný: 15.05.09
Prihlásený: 20.12.13
Príspevky: 81
Témy: 29
Bydlisko: Nitra
Príspevok Napísal autor témyOffline : 28.06.2009 9:05

Ďuri píše:
No tak isto, ako si osetril tie ostatne:
Kód:
$acc1 = strtoupper(addslashes($_POST["acc1"]));


aha... :D THX

ešte by som potreboval vysvetlit ako mam pouziť htmlspecialchar() lebo som to ešte nepoužíval :D


Offline

Čestný člen
Čestný člen
php obchrana SQL

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 28.06.2009 9:19

Pozri si manual - http://php.net/htmlspecialchars


Offline

Skúsený užívateľ
Skúsený užívateľ
php obchrana SQL

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 28.06.2009 16:44

na ochránenie pred sql injection skús použiť prepared statements. Keď sa to naučíš používať skôr, ako získaš nesprávne návyky používaním addslashes a iných nefunkčných somarín, máš vyhraté.
http://andrejserafim.wordpress.com/2007 ... tatements/

ps. názov tejto témy je "php ochrana SQL" - prečo sem kua miešate htmlspecialchars?


Odpovedať na tému [ Príspevkov: 9 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Problém s SQL-PHP

v Databázy

5

658

17.05.2009 17:09

gizmof10 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP & SQL problem

v PHP, ASP

6

463

05.08.2013 13:52

PepperSK Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Výpis v PHP zo SQL

v PHP, ASP

3

469

21.06.2011 15:43

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vlozenie PHP premennu do sql vypisu

v PHP, ASP

6

456

12.05.2013 10:36

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SQL Lite binary file open in PHP

v PHP, ASP

4

386

16.03.2016 8:40

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. php funkcie, template, sql dotazy v funkcii

v PHP, ASP

10

831

18.01.2009 11:11

Unlink Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Strukrura dynamickej web-stranky s PHP a SQL

v PHP, ASP

6

648

26.12.2007 13:22

suchy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pomoc s prikazmi sql cez php - Save to the DB

v PHP, ASP

5

663

03.03.2008 15:29

Blackdevil Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP programátor - PHP, MySQL, jQuery,X)Html/CSS

v Ponuka práce

0

1310

02.05.2011 12:08

magicmedia Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vytvorenie suboru php a vlozenie php scriptu

v PHP, ASP

4

1440

07.05.2010 14:02

DeiForm Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Sql

v Redakčné systémy

7

973

12.04.2007 9:55

mokus Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Sql.....

v Databázy

27

1721

18.07.2008 16:50

m4r14n Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Sql

v Dopyt práce

9

1045

21.10.2020 19:39

citizen Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SQL databaza

v Databázy

8

1129

03.05.2008 14:08

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SQL worksheet

v Databázy

0

828

13.11.2008 21:50

lukinno Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SQL injection

v Databázy

7

814

11.01.2010 17:17

Antuanet Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra