Ochrana proti spatnemu vyuzitiu nicku v knihe

Programovacie jazyky, rady, poradňa...
ATOMIC
Zablokovaný
Zablokovaný
Príspevky: 215
Registrovaný: 26 dec 2007, 19:04
Kontaktovať používateľa:

Ochrana proti spatnemu vyuzitiu nicku v knihe

Príspevok od používateľa ATOMIC »

Viete nemam knihu na registraciu cize ked niekto napise POST s nickom napr. Johny tak niekto iny ho tam tiez napsies inym textom a budeme si mysliet ze ide o stejneho usera. neda sa tomu nejako zabranit? registraciu ani login nexcem zbytocnost....trebars nejake zapisanie usera a zaroven aj pri jeho dalsiej navsteve aby sa mu ten nick co dal povolil ale len ten co napisal...nejako cez session? alebo proste aby nick nebol pristupny inym len jemu a nexcem to riesit cez IP preoze to ma mnozstvo problemov...a vobec to neni efektivne cize pls piste niekto
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Sesion sa musi k užívateľovi nejako priradiť a jeden zo spôsobov je práve použitie IP adresy alebo cookie. Problém pri IP je ten, že nie každý má statickú verejnú adresu. Pri cookie je zase problém, že užívateľ tie cookies môže vymazať.
Takže registrácia je najjednoduchší spôsob, ako dosiahnuť to, čo potrebuješ.
ATOMIC
Zablokovaný
Zablokovaný
Príspevky: 215
Registrovaný: 26 dec 2007, 19:04
Kontaktovať používateľa:

Príspevok od používateľa ATOMIC »

este ma napadlo ze by som mohol ocislovat userov v opradi cez php jak pisali tak odhalim podvodnicky nick ked budem mat Johny dajmet tomu poradove coslo 1 a Johnydruhy 2 tak Johny2 ma BAN :) skratka snazim sa registracii co najlepsie vyhybat...pretoze b so musel robit velke zemny v kdoe moja Gb neni usposobena pre registraciu login mam len do administracie :( a navyse riesim aj smajliky neviem ako ich urobit i ked som si precitol milion navodov na nete :( mozno je cyhba tam kde tie kody pcham
ATOMIC
Zablokovaný
Zablokovaný
Príspevky: 215
Registrovaný: 26 dec 2007, 19:04
Kontaktovať používateľa:

Príspevok od používateľa ATOMIC »

Alebo nevadi uz som to vyriesil :) no mam problem furt s tymi smajlikmi...neviem mam to takto:

Kód: Vybrať všetko

<script language="javascript" type="text/javascript">
function Smajl(co)
{
   document.forms.formular.text.focus();
   document.forms.formular.text.value=
   document.forms.formular.text.value+co;
}
 function ctrlenter(e){
  if(document.all){e=window.event;}
  if(e.ctrlKey&&e.keyCode==0x0d){
   document.forms.formular.submit();return false;
  }
 }
</script>
Moj textarea do ktoreho xcem aby sa to vkladalo ma name="text" tak som skusal prepisat formular na text no nepomoholo to :cry:
A este mam toto ale to je jedno podstatne je ze to NEJDE:

Kód: Vybrať všetko

<div align="center" class="text">Smajlíky: 
<img onclick="Smajl(':) ')" src="smile1.gif" alt=":}" onmouseover="this.style.cursor='hand'">

<img onclick="Smajl(' lol ')" src="smile2.gif" alt="lol" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl(':-D ')" src="smile3.gif" alt=":-D" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl('=) ')" src="smile4.gif" alt="=)" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl(':o) ')" src="smile5.gif" alt=":o)" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl(':-B ')" src="smile6.gif" alt=":-B" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl('8-D ')" src="smile7.gif" alt="8-D" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl(':-P ')" src="smile8.gif" alt=":-P" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl(':-)) ')" src="smile9.gif" alt=":-))" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl(':-&lt ')" src="smile10.gif" alt=":-&lt" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl(';) ')" src="smile11.gif" alt=";)" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl(':-/ ')" src="smile12.gif" alt=":-/" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl(':-( ')" src="smile13.gif" alt=":-(" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl(':.( ')" src="smile14.gif" alt=":.(" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl(' O.o ')" src="smile15.gif" alt="O.o" onmouseover="this.style.cursor='hand'">
<img onclick="Smajl(';o) ')" src="smile16.gif" alt=";o)" onmouseover="this.style.cursor='hand'">
Pls helfnite co s tym :cry: :cry:
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Skús niečo takéto:

Kód: Vybrať všetko

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>test</title>
<script type="text/javascript"><!--
	function insertSmiley(text)
	{
		var message = document.getElementById("text");
		if (message.createTextRange && message.caretPos) {
			var caretPos = message.caretPos;
			caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
			message.focus();
		} else {
			message.value  += text;
			message.focus();
		}
		return false;
	}
--></script>
<style>
.smilies {
	border: 1px solid black;
	padding: 4px;
}
.smiley {
	cursor: pointer;
}
</style>
</head>

<body>
<form action="#" method="post">
<div class="smilies">
<img class="smiley" src="01.png" alt=":)" title=":)" width="15" height="15" onclick="insertSmiley(':)')">
<img class="smiley" src="02.png" alt=":D" title=":D" width="15" height="15" onclick="insertSmiley(':D')">
</div>
<textarea name="text" id="text" rows="3" cols="40"></textarea><br>
<input type="submit" value="Odoslat">
</form>
</body>
</html>
PS: Ja by som aj tak použil hotové riešenie a registráciu. :)
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

chrono napísal:PS: Ja by som aj tak použil hotové riešenie a registráciu. :)
copy that. zbuchat guestbook je otazkou hodiny pripadne dvoch. aj s registraciou a s prihlasovanim. Takze bud si najdi nejaky tutorial v ktorom guestbook programovali, alebo si najdi hocijake open source riesenie.
ATOMIC
Zablokovaný
Zablokovaný
Príspevky: 215
Registrovaný: 26 dec 2007, 19:04
Kontaktovať používateľa:

Príspevok od používateľa ATOMIC »

nejako mi to nejde lebo ten tvoj kod mi vytvori textareu dalsie ale ja to xcem do tej starej takze kukni tu je moj nepodareny kod:

Kód: Vybrať všetko

<?php
require("secure.php"); // Nutno vlozit takto do kazde tajne stranky
?>


<?php
$name = trim(htmlspecialchars(addslashes($_POST['name'])));
$email = trim(htmlspecialchars(addslashes($_POST['email'])));
$site = trim(htmlspecialchars(addslashes($_POST['site'])));
$ip=$_SERVER['REMOTE_ADDR'];
if (!$site){  // ak navstevnik nema svoju stranku a nezapise ju tak sa do databazy nezapise nic
 $site = '';
}
$text = htmlspecialchars(addslashes($_POST['text']));
$time = date('d.m.Y H:i'); 

mysql_connect('mysql.ic.cz', 'xxxx', 'xxxx) or die('Spojenie s databazou sa nepodarilo'); //spojime sa s databazou
mysql_select_db('xxxxx') or die('Nepodarilo sa vybrať databázu.'); //vyberieme databazu


if (isset($_POST['sent'])) // vracia true ak je stlacene tlacidlo Send
{
 if ($name != '' || $email != '' || $text != '') // vracia true ak sa $name, $email, $text nerovnajú prázdnym hodnotám
  {
    if (ereg('^.+@.+\\..+$', $email)) //vracia true ak je mail spravneho formatu
     {            // ak všetky predošle podmienky vratili true data sa uložia do databáze
      $sql = 'INSERT INTO guestbook (`name`, `email`, `ip`, `site`, `text`, `time`) VALUES ("'.$name.'", "'.$email.'", "'.$ip.'", "'.$site.'", "'.$text.'", "'.$time.'")';
      $result = mysql_query($sql);
      header('Location: '.$_SERVER['PHP_SELF'].'?report=succes'); // a znova sa naèita stránka so správou o uspešnom pridani prispevku
     }
    else {
         header('Location: '.$_SERVER['PHP_SELF'].'?report=badmail');  // vypise spravu o chybnom maile ak podmienka s formatom mailu vratila false
       }
  }
  else {
    header('Location: '.$_SERVER['PHP_SELF'].'?report=error'); // vypise chybu ak premenne $name, $email, $text sa rovnajú prazdnym hodnotám
  }
}
if ($_SERVER[’HTTP_X_FORWARD_FOR’]) {
$ip = $_SERVER[’HTTP_X_FORWARD_FOR’];
} else {
$ip = $_SERVER[’REMOTE_ADDR’];
}
$domain = GetHostByName($REMOTE_ADDR);
?>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">

<style>
input {
 font-family : Times New Roman, Sans-Serif;
 font-size : 14px;
 color : #66CCCC;
 background-color: #336666;
 border: 2px solid #339999;
}
textarea {
 font-family : Times New Roman, Sans-Serif;
 font-size : 14px;
 color : #66CCCC;
 border: 2px solid #339999;
 background-color: #336666;
}
.vypistextu {
 font-family : Times New Roman, Sans-Serif;
 font-size : 14px;
 color : #66CCCC;
}
a img {
 border:0px;
}
</style>
<body bgcolor="#336666">
<center><form method="post">
<html>
<head>
<title>test</title>
<script type="text/javascript"><!--
   function insertSmiley(text)
   {
      var message = document.getElementById("text");
      if (message.createTextRange && message.caretPos) {
         var caretPos = message.caretPos;
         caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
         message.focus();
      } else {
         message.value  += text;
         message.focus();
      }
      return false;
   }
--></script>
</head>

<font color="#00CCCC">
    <b>*Meno:</b> <input type="text" name="name"><br>
                                       <br>
    <b>*Email:</b> <input type="text" name="email"><br>
                                       <br>
    <b>Web:</b> <input type="text" name="site"><br>
                                       <br> 

<body>
<form action="#" method="post">
<div class="smilies">
<img class="smiley" src="01.png" alt=":)" title=":)" width="15" height="15" onclick="insertSmiley(':)')">
<img class="smiley" src="02.png" alt=":D" title=":D" width="15" height="15" onclick="insertSmiley(':D')">
</div>
    <b>*Text príspevku:</b><br><textarea name="text" cols="50" rows="5" wrap="soft">
</textarea><br>
<input type="submit" name="sent" value="Odoslať">
</form></center>

<?php

 $report = $_GET['report'];
 switch ($report){               //Vypisuje spravy o cinnosti
                   case 'error':
                     echo '______________________________Zadaj všetky povinné údaje s hviezdièkou___________________________________________________<br><br>';
                     break;
                   case 'succes':
                     echo '____________________________________Pridanie prispevku bolo uspesne______________________________________________________<br><br>';
                     break;
                   case 'badmail':
                     echo '__________________________________________Zadal si neplatny mail_________________________________________________________<br><br>';
                     break;
                   default:
                   print '&nbsp;&nbsp;Všetky údaje s hviezdièkou sú povinné. Do pola Web napíš bez http:// adresu svojej stránky. __________________________________________________________________________________<br><br>';
                  }


  define ('ROWS', 5); //odpoveda poctu zaznamov na jednu stranu
  if (!isset($HTTP_GET_VARS["num"])) // pokial nevieme kolko bude zaznamov tak to zistime
   {
     $result = mysql_query("SELECT id FROM guestbook");
     $num = mysql_num_rows($result);
  }
  else
  {
       $num = $HTTP_GET_VARS['num'];
  }
  if ($num > ROWS)
  {
     $od = isset($HTTP_GET_VARS['od']) ? $HTTP_GET_VARS['od'] : 1;
     $result = mysql_query("select * from guestbook order by id desc limit ".($od - 1).", ".ROWS);
       
     while($row=mysql_fetch_object($result))
     {
                             
		 echo 'Meno:  '.$row->name.$row->ip.'<br>Email: '.$row->email.'<br>Homepage:<a href="http://'.$row->site.'" target="_blank"> '.$row->site.'</a><br>èas: '.$row->time.'<br>Text:<br> <table width="500"><tr><td><div class="vypistextu">'.$row->text.'</div></td></tr></table><br><hr>';
     }

     echo 'Záznamov: ' .$od.'-';
     echo (($od + ROWS - 1)<=$num) ? ($od + ROWS - 1) : $num;
     echo ' Z celkom '.$num.' záznamov. Navigácia: ';
       //Vytvor odkaz iba ked sme na zaciatku
        if ($od == 1) echo 'Zaèiatok | ' ;
       else echo '<a href='.$_SERVER['PHP_SELF'].'?num='.$num.'&od=1>Zaèiatok</a> | ';
       //Zpet vytvor odkaz iba ked niesme na prvej strane
        if ($od < ROWS) echo 'Predchadzajuci | ' ;
       else echo '<a href='.$_SERVER['PHP_SELF'].'?num='.$num.'&od='.($od-ROWS).'>Predchádzajuci</a> | ';
      //Vytvor odkaz iba ked niesme na poslednej strane
        if ($od + ROWS > $num) echo 'Následujúci | ';
       else echo '<a href='.$_SERVER['PHP_SELF'].'?num='.$num.'&od='.($od+ROWS).'>Následujúci</a> | ';
    //posledna strana
       if ($od > $celkem - ROWS) echo 'Koniec <br>';
      else echo '<a href='.$_SERVER["PHP_SELF"].'?num='.$num.'&od='.($celkem - $celkem % ROWS + 1).'>Koniec';
  }
  else
  {
   $result = mysql_query("select * from guestbook order by id desc limit ".$num);
       
     while($row=mysql_fetch_object($result))
     {
                                   echo '<div style="float:right;"><a href="/del.php?id='.$row->id.'"><img src="Dlp.gif" alt=""></a></div>';
		echo '<b>&nbsp;&nbsp;Nick:</b> '.$row->name.'<br><b>&nbsp;&nbsp;IP:</b> '.$row->ip.'<br>&nbsp;&nbsp;<b>Dátum a èas vloženia príspevku:</b> '.$row->time.'<br>&nbsp;&nbsp;<b>Email:</b> '.$row->email.'<br>&nbsp;&nbsp;<b>Web:</b><a href="http://'.$row->site.'" target="_blank"> '.$row->site.'</a><br><br> <table width="500"><tr><td>&nbsp;<div class="vypistextu">&nbsp;&nbsp;'.$row->text.'</div></td></tr></table><br><hr>';
     }
  }
?>
lama2d
VIP
VIP
Príspevky: 1006
Registrovaný: 24 feb 2005, 14:54
Bydlisko: PostgreSQL

Príspevok od používateľa lama2d »

mysql_connect('mysql.ic.cz', 'xxxx', 'xxxx)

Nechyba ti tam nic? btw. mala by sa zaviest daka sutaz v neefektivnosti scriptov. Urcite by si bodoval... Mimochodom z tvojho predchadzajuceho prispevku sa neda pochopit co mas za problem...
ATOMIC
Zablokovaný
Zablokovaný
Príspevky: 215
Registrovaný: 26 dec 2007, 19:04
Kontaktovať používateľa:

Príspevok od používateľa ATOMIC »

lama2d napísal:mysql_connect('mysql.ic.cz', 'xxxx', 'xxxx)

Nechyba ti tam nic? btw. mala by sa zaviest daka sutaz v neefektivnosti scriptov. Urcite by si bodoval... Mimochodom z tvojho predchadzajuceho prispevku sa neda pochopit co mas za problem...
skutocne? :) takze ked som vlozil tento kod sem ta ksom zabudol a nechal som tu moje udaje cize heslo usera atd k databazke :oops: Tak som to ryxlo prepisal na xxxx xxxx a nechyba mi tam nic :P ide mi o to ze som xcel posudok ze jak tem kod tam umiestnit lebo osm to skusal a nejako to nejde som furt lama sak vite 8) a teda skor o niekoho kto by mi ukazal jak tam ten kod umiestnit pretoze ked som ho tam dal tak mi to islo ok len mi to vytvorilo textareu naviac...a tak som ju deletol ale uz to potom neslo :( sak posudte sami
ATOMIC
Zablokovaný
Zablokovaný
Príspevky: 215
Registrovaný: 26 dec 2007, 19:04
Kontaktovať používateľa:

Príspevok od používateľa ATOMIC »

Prosim niekoho aby mi nasiel nejaky dobry tut na registraciu a login. Bo som hladal na googl ia vacsina z nich ma budto chybu v sql tabulke alebo v cookies. Preto prosim niekoho nedch mi doporuci nejaky dobry. Dakujem predom skusal som tieto:
Pc svet - NO
Interval - NO (najhorsi asi)

a itzone xcme skusit no zatial fakt helfnite
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Neviem, či som to písal už aj tebe: Prečo nepoužiješ nejaké hotové riešenie (keď neovládaš php)? Použi nejaký CMS v ktorom už návštevná kniha je.

chrono: Keď tak pozerám, už som ti naznačil, aby si využil hotové riešenie. ;)
ATOMIC
Zablokovaný
Zablokovaný
Príspevky: 215
Registrovaný: 26 dec 2007, 19:04
Kontaktovať používateľa:

Príspevok od používateľa ATOMIC »

Vies o nejakom dobrom? nejakom co ma registraciu a login + GB? Doporuc mi nejaky CMS ale ja ziadny nepoznam
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

To záleží od toho, akú stránku vlastne robíš. Skús sa pozrieť sem: http://www.opensourcecms.com/ (sú tam demá CMS).
ATOMIC
Zablokovaný
Zablokovaný
Príspevky: 215
Registrovaný: 26 dec 2007, 19:04
Kontaktovať používateľa:

Príspevok od používateľa ATOMIC »

robim stranku s downloadmi a jednoduchu taku stranku jednoduchu. Proste xcem registraciu + login ktore by mali mat taketo priznaky:

ak nie si lognuty tak nemozes pisat do GB
specialne na jeden nick nastavit administraciu
Aby som moholo editovat prispevky atd...i ked to mozem uuz teraz

Proste s tym loginom a s reg by osm is poradil ale nevime urobit podmienku PHP aby ked nie si lognuty nemozes pisat do GB
aby kazdy mohol editovat svoj prispevok (ja mam zatial len mazanie viz kukni sa do kodu)

proste ma to strasne moc komplikacii ktore asi CMS nevyriesi :( napriklad urobit to ze ked sa regnes tak pri pisani prispevku sa ti automatikcy zada u prispevku tvoj nick

Ja by osm registarciu a login vobec nerobil ale co mi ostava?
Xcel som to riesit takto: Ked napises prispevok tak ta system nejako oznaci neivem ako a na zaklade toho pri pisani dlasieho ti povoli iba tvoj nick a nie niekoho ineho. Lenze existuje nejaky DOKONOLY na 100% sposob jak identifikovat usera? nie asi
lama2d
VIP
VIP
Príspevky: 1006
Registrovaný: 24 feb 2005, 14:54
Bydlisko: PostgreSQL

Príspevok od používateľa lama2d »

Takto. Myslim si, ze nikto nema cas ti tu pisat kompletne scripty na registracku podla tvojich predstav. Keby si aspon sem hodil to co si vypotil...
ATOMIC
Zablokovaný
Zablokovaný
Príspevky: 215
Registrovaný: 26 dec 2007, 19:04
Kontaktovať používateľa:

Príspevok od používateľa ATOMIC »

Vies ze sa vyplati citat hore? :D pretoze by si zistil ze je tam moj kod k GB
lama2d
VIP
VIP
Príspevky: 1006
Registrovaný: 24 feb 2005, 14:54
Bydlisko: PostgreSQL

Príspevok od používateľa lama2d »

Tvoj kod k GB si mozes nechat, keby si vedel poriadne citat tak by si zistil, ze pisem o kode k registracke a nie o kode k GB.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

ATOMIC napísal:proste ma to strasne moc komplikacii ktore asi CMS nevyriesi :( napriklad urobit to ze ked sa regnes tak pri pisani prispevku sa ti automatikcy zada u prispevku tvoj nick
Prečo by to CMS nemalo vyriešiť? Napr. presne tak funguje Jot (je to GB) v MODxCMS.
ATOMIC
Zablokovaný
Zablokovaný
Príspevky: 215
Registrovaný: 26 dec 2007, 19:04
Kontaktovať používateľa:

Príspevok od používateľa ATOMIC »

Ok tak pls daj link na to cms co to ie diky predom
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Napísať odpoveď