Автор Тема: Fingerprint на информация  (Прочетена 2144 пъти)

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Fingerprint на информация
« -: Jun 26, 2007, 23:09 »
Ситуацията е следната: web приложение, което не иска login. Всичко се пази client-side.

Та... направил съм си две функции за работа с cookies. Целта ми е да направя така, че запазената информация да може да бъде проверявана за модификация чрез fingerprint (hash сума) и съответно да избегна валидацията й. Функциите са:

Примерен код

$seed ='dfsjfslnm4312890nasxd32897dxgszbd972';

function getSecCInfo($name)
{
   global $seed;

   if (!empty($_COOKIE[$name]) && !empty($_COOKIE[$name."_HASH"]))
   {
      $pref = unserialize(base64_decode($_COOKIE[$name]));
      if (base64_decode($_COOKIE[$name."_HASH"]) != md5($_COOKIE[$name].$seed) )
      {
         return null;
      }
      return $pref;
   }
   return null;
}

function setSecCInfo($pref, $name, $months = 1)
{
   global $seed;

   $ser = base64_encode(serialize($pref));
   setcookie($name, $ser, time() + 3600*24*30*$months);
   setcookie($name."_HASH", base64_encode(md5($ser.$seed)), time() + 3600*24*30*$months);
}


Някой правил ли е нещо подобно и ако е, какви са плюсовете и минусите? Естествено други решения и идеи са добре дошли. '<img'>

Благодаря предварително!

ПП: Някои от бисквитките *може би* ще пазят цели SQL заявки в чист текст ... трябва да е сигурно, че нищо не е проеменяно ...

ППП: Между другото - нужно ли е да се прави base64encode на md5 string?



Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Fingerprint на информация
« Отговор #1 -: Jun 27, 2007, 21:54 »
Насочиха ме към HMAC-md5 или HMAC-SHA1

http://www.faqs.org/rfcs/rfc2104.html
http://www-cse.ucsd.edu/~mihir/papers/kmd5.pdf
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Fingerprint на информация
« Отговор #2 -: Jul 01, 2007, 00:49 »
Цитат (VladSun @ Юни 26 2007,23:09)
ППП: Между другото - нужно ли е да се прави base64encode на md5 string?

Не! '<img'>
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Fingerprint на информация
« Отговор #3 -: Jul 23, 2007, 02:54 »
PHP:

Примерен код

function hmac($algo, $data, $passwd)
{
 /* md5 and sha1 only */
 $algo = strtolower($algo);
 $p = array('md5'=>'H32','sha1'=>'H40');

 if(strlen($passwd) > 64) $passwd=pack($p[$algo], $algo($passwd));
 if(strlen($passwd) < 64) $passwd=str_pad($passwd, 64, chr(0));

 $ipad = substr($passwd, 0, 64) ^ str_repeat(chr(0x36), 64);
 $opad = substr($passwd, 0, 64) ^ str_repeat(chr(0x5C), 64);

 return($algo($opad.pack($p[$algo], $algo($ipad.$data))));
}


*взето от демопакета на epay-bg


Perl:

Digest::SHA1
Digest::MD5
Digest::HMAC



Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Fingerprint reader
Настройка на хардуер
abadon 9 3912 Последна публикация Nov 18, 2007, 16:28
от anarsoul
Fingerprint Reader
Настройка на програми
djunidjuni 2 2071 Последна публикация Aug 24, 2009, 15:56
от shoshon
Конфигуриране на fingerprint
Настройка на програми
NikolaiTalev 0 1352 Последна публикация Mar 02, 2012, 21:22
от NikolaiTalev
fingerprint на Linux mint 20.2
Настройка на програми
demorian 1 2831 Последна публикация Dec 29, 2021, 18:40
от dggbg