site beveiligen

  • Onderwerp starter Onderwerp starter baws
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

baws

Terugkerende gebruiker
Lid geworden
9 apr 2010
Berichten
1.258
Hallo,
ik heb een site gemaakt.
op deze sites kun je comments geven op fotos.
hoe zorg ik dat hier niet mee gehackt kan worden, ik weet dat het veel gebeurt via comments.
ik heb een textarea die de ingevoerde text na een durk op de knop verzend naar een php bestand die het opslaat in een database.
mvg
 
zorg dat de uitvoer van de foto's (de tekst uit de db halen) gedaan is met htmlspecialchars!
geen beveiliging maar tip.

mysql_real_escape_string($_POST['name-van-input-veld'])
zorg dat velden niet leeg ingevuld mogen worden.
PHP:
if(empty($_POST['name-van-input-veld']))
{
echo 'fout';

maak een antiflood tegen spammen.
dan kunnen bots dus niet achterelkaar berichten sturen wat je site extra belast en je een volle db krijgt.

als je wachtwoorden hebt dan moet je hem hashen met sha1($_POST['name-van-input-veld'])

evt. kun je een extra hash meevoeren in de db.

mysql_query('INSERT INTO login SET wachtwoord="dit-is-de-extra-hash'.mysql_real_escape_string(sha1($_POST['name-van-input-veld'])).'"');

dat is dus een extra stukje beveiliging als mensen in je db komen. mensen kunnen dan niet je gebruikerswachtwoorden zien.
 
om een hash te maken van gebruik ik deze statische functie:
PHP:
class hash {
/**
* Class created by Phobia@morphius.inc
*
* create - Create an encryption key with a special algorithm and key
*
* @param string $algo The algorithm to use md5, sha1, sha256.....
* @param string $dataThe string to encrypt
* @param string $saltA salt to apply to the encryption
*
* return string
*/
    static public function create($algo, $data, $salt = Null) {
        if ($algo && $data) {
            if($salt != Null){
                $context = hash_init($algo, HASH_HMAC, $salt);
            } else {
                $context = hash_init($algo);
            }
            
            if(!$context) {
                throw new Exception("Error salting data");
                return false;
            }
            hash_update($context, $data);
            return hash_final($context);
        } else {
            throw new Exception("Creating hash failed");
        }
    }

    static public function token($salt = NULL){
        $data = uniqid(microtime());
        if($salt != Null)
            return self::create ("md5", $data, $salt);
        else
            return $data;
    }
    
}

PHP:
$teHashenData = "wachtwoord";
$salt = "EenConctanteDieNooitVeranderdOmDeDataBeterTe ";
echo hash::create("sha256", $teHashenData, $salt);
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan