Ostatní témata (Off Topic témata) : phpRS Fórum
Máte problém s konfigurací počítače? Hledáte nejlepší webhosting pro vaši aplikaci? Nevíte si rady s nějakým zajímavým programátorským oříškem? Týká se dotaz fóra? ... Pokud ano, tak je toto diskuzní fórum určeno právě vám.
phpRS - redakční a informační systém
Posílání aktuální url adresy přes formulář
Zaslán uživatelem/kou: ZdenekPNJ (IP adresa zaznamenána)
Datum: 2012-04-17, 23:56

Zdravím,

chtěl bych se zeptat. Potřeboval bych, aby mi formulář zasílal kromě ostatního také informaci o konkrétní adrese, ze které byl poslán. Mám totiž dynamické formuláře a potřeboval bych vědět přesnou url adresu stránky.

Napadlo mě do formuláře do pole input předdefinovat hodnotu value funkcí get_url() a posílat to na email spolu s dalšími daty přes POST. Není to nebezpečné? V tomto se nějak nevyznám.

POLE VE FORMULÁŘI:
<input size=\"40\" name=\"clanek\" class=\"textpole\" value=\"".get_url()."\" type=\"hidden\">

FUNKCE get_url:

function get_url($header = false) {
static $pure_url = null;
static $html_url = null;

if (!$pure_url) {
$url = (isset($_SERVER['HTTPS']) ? 'https://' : 'http://');
$url .= $_SERVER['SERVER_NAME'];
$port = explode(':', $_SERVER['HTTP_HOST']);
if (!empty($port[1])) {
$url .= ':'.$port[1];
}
$url .= $_SERVER['REQUEST_URI'];
$pure_url = $url;
$html_url = str_replace('&', '&amp;', $pure_url);
}

return $header ? $pure_url : $html_url;
}

LinkedIn - Zdeněk Pikulík

Regiony ČR.cz - 1. responzivní zpravodajství z regionů ČR
Medializujeme ČESKO.cz - Revoluční program podpory a modernizace obcí ČR
Obce2020.cz - Moderní řešení profesionálního webu pro obce

Re: Posílání aktuální url adresy přes formulář
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2012-04-18, 00:12

Nebezpečné to nie je, musíš si ale dať pozor na spracovanie premenných v tele emailu. Email je ideálne zakódovať, napríklad do base64 a odoslať tak, aby to prípadný útočník nezneužil na zmenu hlavičiek alebo tela emailu pomocou podsrčených hodnôt. A hlavne na obsah sa nesmieš spoliehať, pretože v $_POST["clanek"] môže byť čokoľvek, útočník môže odoslať POST, ktorý v tejto premennej bude mať hocičo, nemusí to reflektovať URL. Ďalšie hrozby tam nevidím, takže ostáva klasika – ak vypisuješ do HTML htmlspecialchars, ak ukladáš do db *_real_escape_string.

Re: Posílání aktuální url adresy přes formulář
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2012-04-18, 00:14

Nejak nechápem zmysel tej prvej podmienky a kód treba ošetriť, inak máš nepermanentné XSS.

<input size="40" name="clanek" class="textpole" value="<?php echo htmlspecialchars(get_url()); ?>" type="hidden">


Osobne by som asi použil $_SERVER['HTTP_REFERER'] v scripte, ktyorý ten POST spracováva, ale pozor, aj toto je hodnota, na ktorú sa nedá spoľahnúť, dá sa meniť zo strany klienta. Inak poslať cez formulár sa dá pekne celý $_SERVER, stačí ho serializovať a prípadne aj zakódovať.



Celkem upraveno 2×. Poslední úprava pa3k v 18.04.2012 00:20.

Re: Posílání aktuální url adresy přes formulář
Zaslán uživatelem/kou: ZdenekPNJ (IP adresa zaznamenána)
Datum: 2012-04-18, 01:30

Super. Díky moc za radu.

LinkedIn - Zdeněk Pikulík

Regiony ČR.cz - 1. responzivní zpravodajství z regionů ČR
Medializujeme ČESKO.cz - Revoluční program podpory a modernizace obcí ČR
Obce2020.cz - Moderní řešení profesionálního webu pro obce



Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.