[ 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 | 29
Bydlisko: Nitra
Vek: 24
NapísalOffline : 27.06.2009 20:54 | php obchrana SQL

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: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 27.06.2009 21:21 | php obchrana SQL

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 | 29
Bydlisko: Nitra
Vek: 24
Napísal autor témyOffline : 27.06.2009 22:54 | php obchrana SQL

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: 532
Témy: 27 | 27
Bydlisko: Nitra
NapísalOffline : 28.06.2009 0:15 | php obchrana SQL

Č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 | 29
Bydlisko: Nitra
Vek: 24
Napísal autor témyOffline : 28.06.2009 9:01 | php obchrana SQL

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: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 28.06.2009 9:04 | php obchrana SQL

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 | 29
Bydlisko: Nitra
Vek: 24
Napísal autor témyOffline : 28.06.2009 9:05 | php obchrana SQL

Ď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: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 28.06.2009 9:19 | php obchrana SQL

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: 1586
Témy: 96 | 96
NapísalOffline : 28.06.2009 16:44 | php obchrana SQL

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?


 [ Príspevkov: 9 ] 


php obchrana SQL



Podobné témy

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

PHP & SQL problem

v PHP, ASP

6

178

05.08.2013 13:52

PepperSK

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

Problém s SQL-PHP

v Databázy

5

444

17.05.2009 17:09

gizmof10

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

Výpis v PHP zo SQL

v PHP, ASP

3

319

21.06.2011 15:43

emer

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

vlozenie PHP premennu do sql vypisu

v PHP, ASP

6

179

12.05.2013 10:36

Ďuri

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

php funkcie, template, sql dotazy v funkcii

v PHP, ASP

10

575

18.01.2009 11:11

Unlink

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

SQL Lite binary file open in PHP

v PHP, ASP

4

136

16.03.2016 8:40

BX

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

Strukrura dynamickej web-stranky s PHP a SQL

v PHP, ASP

6

439

26.12.2007 13:22

suchy

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

476

03.03.2008 15:29

Blackdevil

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

814

02.05.2011 12:08

magicmedia

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

Vytvorenie suboru php a vlozenie php scriptu

v PHP, ASP

4

924

07.05.2010 14:02

DeiForm

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

Sql

v Redakčné systémy

7

714

12.04.2007 9:55

mokus

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

Sql.....

v Databázy

27

1297

18.07.2008 16:50

m4r14n

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

SQL prikaz

v Databázy

8

1371

06.10.2009 19:21

rooobertek

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

SQL samouk

v Databázy

11

2736

23.09.2009 17:32

Srnka0

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

rýchlosť SQL

v Databázy

6

452

05.05.2010 7:58

coldak

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

DB sql

v PHP, ASP

1

240

27.08.2011 11:45

emer



© 2005 - 2017 PCforum, edited by JanoF