امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5

ساختن htpasswd برای یک یوزر و پسوورد در php

#1
با سلام و درود خدمت تمامی اعضا و دوستان سایت.امروز میخوام یک مقاله ای که براتون ترجمه کردم و با تجربیاتی که دارم,اضافه تر کردمش,و خیلی هم مفید هستش برای کسانی که هاستینگ دارند,اینجا قرار بدم.این آوزش اولین بار در سایت دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
http://iedb.ir/acc  قرار میگیره.

ساختن htpasswd به صورت دستی برای یک یوزر و پسوورد در php

همه میدونیم که htpasswd برای پسوورد گذاشتن در یک فولدر خاصی هستش و با استفاده از htaccess فراخوانی میشه و یوزر و پسوورد دانل این اچ تی پسوورد ذخیره میشه

حالا من میخوام دوتا متد واستون بگم که بتونید با این دو متد,فایل htpasswd برای یک یوزر و پسوورد درست کنید و فایل htpasswd رو داخل پوشه ورد نظر بریزید و دستور رمز گذاری htaccess رو هم دالخش بذارید و امنیت اون پوشه با رز گذاری بیشتر میشه

بریم سر آموززش :



1 - متد اول به وسیله فانکشن crypt() می باشد.

ما با استفاده از فانکشن crypt() به صورت base64 میتونید این کارو انجام بدیم و برای یوزری که معرفی میکنیم,پسوورد رو کد شده بهتون بده تا داخل htpasswd استفاده کنید :



کد:

کد:
htpasswd -d /home/.htpasswd iedbteam
به جای iedbteam یوزر رو که میخوان میذارید.

با این کار یه یوزر داخل htpasswd میسازید



بعد این فایل رو داخل پوشه مورد نظر قرار میدهیم.

بعد برای ساختن و دیدن یوزر و پسوورد و کد اون,از این فایل php استفاده میکنیم :





کد:

کد:
<?php
// Password to be used for the user
$username = 'iedbteam';
$password = 'password1';

// Encrypt password
$encrypted_password = crypt($password, base64_encode($password));

// Print line to be added to .htpasswd file
echo $user . ':' . $encrypted_password;


جای user و password یوزر و پسووورد خودتونو بذارید.

نمونه متنی که نشون میده اینطوریه :



iedbteam:MzKSsddfdddfd62M/K9HSs54asdsd65544



بعد این رو داخل پوشه ای که میخوایم پسوورد بذاریم فایل htpasswd میسازیم و این نوشته رو قرار میدیم و کد اجرای پسوورد که اینطوریه رو هم به htaccess اضافه یکنیم:





کد:

کد:
AuthGroupFile /dev/null
AuthType Basic
AuthUserFile /home/iedbteamsec/public_html/admin/oSDewEWN-T-A-AAA-R/.htpasswd
AuthName "IeDb Team"
require valid-user


این روش اول برای ساخت htpasswd

روش دوم :

با استفاده از الگوریتم APR1-MD5

اول این فرمان رو میزنید :





کد:

کد:
htpasswd -m /home/.htpasswd iedbteam


به جای iedbteam یوزر رو که میخوان میذارید.

با این کار یه یوزر داخل htpasswd میسازید



بعد این فایل رو داخل پوشه مورد نظر قرار میدهیم.

.سپس با استفاده از این کد php,میتونید یوزر و پسوورد مورد نظر رو بسازید و داخل فایل htpasswd و داخل فولدر مربوطه قرار بدین :



کد:

کد:
<?php
// APR1-MD5 encryption method (windows compatible)
function crypt_apr1_md5($plainpasswd)
{
    $salt = substr(str_shuffle("abcdefghijklmnopqrstuvwxyz0123456789"), 0, 8);
    $len = strlen($plainpasswd);
    $text = $plainpasswd.'$apr1$'.$salt;
    $bin = pack("H32", md5($plainpasswd.$salt.$plainpasswd));
    for($i = $len; $i > 0; $i -= 16) { $text .= substr($bin, 0, min(16, $i)); }
    for($i = $len; $i > 0; $i >>= 1) { $text .= ($i & 1) ? chr(0) : $plainpasswd{0}; }
    $bin = pack("H32", md5($text));
    for($i = 0; $i < 1000; $i++)
    {
        $new = ($i & 1) ? $plainpasswd : $bin;
        if ($i % 3) $new .= $salt;
        if ($i % 7) $new .= $plainpasswd;
        $new .= ($i & 1) ? $bin : $plainpasswd;
        $bin = pack("H32", md5($new));
    }
    for ($i = 0; $i < 5; $i++)
    {
        $k = $i + 6;
        $j = $i + 12;
        if ($j == 16) $j = 5;
        $tmp = $bin[$i].$bin[$k].$bin[$j].$tmp;
    }
    $tmp = chr(0).chr(0).$bin[11].$tmp;
    $tmp = strtr(strrev(substr(base64_encode($tmp), 2)),
    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
    "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");

    return "$"."apr1"."$".$salt."$".$tmp;
}

// Password to be used for the user
$username = 'user1';
$password = 'password1';

// Encrypt password
$encrypted_password = crypt_apr1_md5($password);

// Print line to be added to .htpasswd file
echo $user . ':' . $encrypted_password;


نمونه اطلاعاتی که نشون میده و شما باید کپی کنید این است :





کد:

کد:
iedbsecurityteam:$apr1$e5cytbnu$ps.bh8zF0tkJpEgkGtYcf0


همنطور که میبینید روش دوم خیلی امنیتش بیشتره و خیلی کد شده خوبی هست.پس از روش دوم هم میتونید استفاده کنید که خیلی بهتر است و کرک کردن اون سخته

حالا واسه اینکه چنتا یوزر معرفی کنید از این کد php استفاده کنید :





کد:

کد:
// Array for usernames and password. 
$users = array();
// User 1
$users[0]['username'] =  'user1';
$users[0]['password'] =  'password1';
// User 2
$users[1]['username'] =  'user2';
$users[1]['password'] =  'password2';
// User 3
$users[2]['username'] =  'user3';
$users[2]['password'] =  'password3';

foreach($users as $user => $data)
{
    $username = $data['username'];
    $password = $data['password'];
    // Encrypt password
    $encryptedpwd = crypt_apr1_md5($password);
     
    // Print line to be added to .htpasswd file
    $content = $username . ':' . $encryptedpwd;
    echo $content . '<br />';
}


خوب خیلی صحبت کردم و خیلی کارام سنگینه.اگه جایی مشکل داشت یا اینکه متوجه نشدین,بگین تا توضیح بدم.

چون با گوشی ستم یکم شاید آوزش سنگینی باشه

اما خیلی آموزش خوبی هستش و اولین تیمی هستیم که این آموزش رو گذاشتیم.

منبع : دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
تیم امنیتی IeDb.ir

موفق باشید.
پاسخ
آگهی


[-]
به اشتراک گذاری/بوکمارک (نمایش همه)
google Facebook cloob Twitter
برای ارسال نظر وارد حساب کاربری خود شوید یا ثبت نام کنید
شما جهت ارسال نظر در مطلب نیازمند عضویت در این انجمن هستید
ایجاد حساب کاربری
ساخت یک حساب کاربری شخصی در انجمن ما. این کار بسیار آسان است!
یا
ورود
از قبل حساب کاربری دارید? از اینجا وارد شوید.


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان