مقالات آموزشی

1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

امتیاز کاربران

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال

نحوه تغییر اطلاعات مالک دامنه

 

 

 

برای ورود به پنل کاربری خود در سایت http://MyDomain.WeboData.com/customer وارد شوید. جهت ورود راهنمای زیر را بخوانید:

 

جهت تغییر اطلاعات مالکیت دامنه، به قسمت Domains بروید. از منوی باز شده بالا، گزینه List All Orders را انتخاب کنید، به صفحه ای وارد می شوید که لیستی از دامنه هایی که با این آدرس ایمیل، درخواست ثبت آنها را داده اید، ملاحظه می کنید.

 

 بر روی دامنه مورد نظر کلیک کنید، در صفحه جدید باز شده بر روی گزینه Contact Details کلیک کنید.

 

در صفحه باز شده  برروی گزینه Edit existing contact کلیک کرده درمرحله بعد  می توانید نام مالک دامنه، شماره های تماس و آدرس را تغییر دهید سپس بر روی Submit و کلید Modify Contact Information کلیک کنید.

 

 

 

 

نحوه تنظیم دی ان اس دامنه کام

 

 

 

پس از ورود به پنل دومین از منوی بالا Domains -> List All Orders و نام دامنه های ثبت شده را خواهید دید، بر روی نام دامنه کلیک کنید.

سپس روی Name Serversکلیک کنید .در اینجا میتوانید DNS های دومین را وارد کنید و بر روی کلید Submit کلیک کنید.

 

دقت کنید پس از تغییر DNS های دومین معمولا بین 4 تا 24 ساعت زمان نیاز است تا DNS های جدید کاملا در کل اینترنت تنظیم شود.

1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

امتیاز کاربران

ستاره فعالستاره فعالستاره فعالستاره غیر فعالستاره غیر فعال

جلوگیری از حمله تزریق به پایگاه داده  (SQL Injection)

در مقاله پیشین در مورد حمله تزریق به دیتابیس توضیحاتی داده شد. اینک در این مقاله قصد داریم به مواردی که میتواند از بروز این حمله جلوگیری کرده و امنیت وب سایت را افزایش دهد اشاره نماییم.

 

حمله تزریق به دیتابیس یا پایگاه داده (SQL Injection) نوعی از حملات تحت وب است که به علت اشتباهات برنامه نویسان در طراحی و توسعه سایت رخ میدهد و جزو سه رخنه امنیتی برتر سایت ها است. در این حمله هکر با پیدا کردن یک مشکل امنیتی در سایت دستورات SQL مورد نظر خود را در سمت سرور اس کیو ال اجرا خواهد کرد. برنامه نویسان میتوانند با پیکربندی موارد بسیار ساده از این باگ امنیت جلوگیری نمایند. با این حمله هکر خواهد توانست به دیتابیس دسترسی داشته و تمام اطلاعات حساس مانند رمزهای عبور کاربران را تغییر داده و یا حذف نماید.

 

چگونه از باگ SQL Injection جلوگیری کنیم؟

برای جلوگیری از باگ تزریق به دیتابیس ، نیاز است تا برنامه نویس سایت از نحوه عملکرد این باگ آگاهی داشته باشد. بنابراین به سراغ کدهایی که نوشته ایم رفته و از کوئری های پارامتریندی شده استفاده میکنیم.

کوئری‌های پارامتر بندی شده نوعی ارتباط با دیتابیس است که در آن کوئری (Query) ما یک بار بدون داشتن مقدار متغیر، به سرور دیتابیس ارسال شده و بعد از آن، متغیرها یکی یکی و به صورت جداگانه ارسال می‌شوند. این قابلیت مزایای مختلفی دارد از جمله:

  • افزایش سرعت کار با دیتابیس: دستور SQL خود را یک بار معرفی کرده و به سرور ارسال می‌کنیم و بعد از آن هر چند دفعه که نیاز است، فقط متغیرها را ارسال می‌کنیم. با این کار هم تاخیر آماده کردن کوئری کامل کمتر می‌شود و هم پهنای باند استفاده شده چون کوئری تنها یک بار ارسال می‌شود، بسیار بهینه تر خواهد بود.
  • افزایش امنیت: متغیرهای ما به صورت مستقیم در دستور sql مان قرار نگرفته و به صورت جداگانه ارسال می‌شود. بنابراین هکر قادر نخواهد بود به استیتمنت (همان کوئری) ما دستور دیگری اضافه کند و بدین ترتیب از باگ SQL Injection جلوگیری می‌شود.

در صورتیکه از زبان پی اچ پی استفاده می‌کنید، یکی از کاربردی ترین روش‌ها برای پارامتری کردن کوئری‌ها استفاده از افزونه PDO (PHP Data Objects )  است. با استفاده از این ابزار می‌توانید به اکثر دیتابیس‌ها بدون هیچ مشکلی متصل شوید و دیتابیس را به گونه ای طراحی کنید که هر زمانی میتوانید نوع آن را تغییر دهید.

ابتدا متغیرهای خود را تعریف می‌کنیم:

نام کاربری یوزر دیتابیس

$username = "root";

پسورد یوزر دیتابیس

$password = "";

هاست دیتابیس

$host = "localhost";

نام دیتابیس

$dbname = "my_database";

حال باید ابجکت PDO را تعریف کنیم.این کار را در بلوک Try - Catch انجام می‌دهیم تا در صورت وجود مشکل، ما را مطلع کند:

try {

// آبجکت پی دی او خود را در زیر تعریف می‌کنیم

$db = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password, $options);

} catch(PDOException $ex) {

// اگر مشکلی در ارتباط با دیتابیس پیش آمد

die("Failed to connect to the database: " . $ex->getMessage());

}

در $db آبجکت PDO ما با DSN ای که داخل آن نوشته شده، تعریف شده است.

در این DSN از charset=utf8 استفاده کرده‌ایم. با این کار دیتابیس متوجه خواهد شد که تنها کاراکترهایی با اینکدینگ یا کاراکتر ست UTF-8 را قبول کند. این مورد در جلوگیری از SQL Injection  بسیار کاربردی است زیرا کاراکترهای خارج از UTF-8 در سمت دیتابیس قبول نخواهند شد.

نکته: اگر PDO شما از charset در DSN خود پشتیبانی نکند، باید کاراکتر ست را به صورت دستی ست کنید. در این حالت، کافیست قبل از بلوک Try - Catch دستور زیر را بنویسید که آرایه‌ای از تنظیمات اختیاری برای PDO می‌سازیم که می‌تواند شامل بیش از یک تنظیم باشد. در این آرایه، با دستور SET NAMES utf8 کاراکتر ست را انتخاب می‌کنیم:

$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');

توجه کنید که تنها اگر از charset پشتیبانی نکند از دستور بالا استفاده کنید!

حال برخی از خواص $db خود که شامل یک آبجکت PDO است را مشخص می‌کنیم. ابتدا حالت نشان دادن خطا را فعال می‌کنیم تا در قسمتی از کدها اگر مشکلی بود، بتوانیم در بلوک Try - Catch آن را مدیریت کنیم:

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

توجه کنید که پس از اتمام برنامه نویسی وب، شدیداً توصیه می‌شود که حالت نشان دادن خطا را غیرفعال کنید تا هکرها در صورت وجود باگ از آن مطلع نشوند.

حال خصوصیت نحوه بازگرداندن داده‌ها را انتخاب می‌کنیم. در این قسمت تعریف می‌کنیم که داده‌ها را به صورت آرایه‌ای با نام ستون جدول دیتابیس نشان دهد یعنی مثلاً اگر ستونی با نام user_lastname را درخواست کنیم، آن را می‌توانیم در آرایه‌ای با همین نام دریافت کنیم:

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

حال به مهمترین خصوصیت PDO رسیده‌ایم. ممکن است فرض کنید که PDO همیشه داده‌ها را به صورت پارامتر شده به دیتابیس ارسال می‌کند اما این تصور اشتباه است، ممکن است از طرف دیتابیس این قابلیت تایید نشود بنابراین PDO کوئری ما را به صورت از پیش آماده شده ارسال خواهد کرد که باعث بوجود آمدن باگ SQL Injection خواهد شد. با ست کردن خصوصیت زیر به PDO اطلاع میدهیم که همیشه از عمل پارامتر کردن استفاده کند:

$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

با این حال باز هم امکان این وجود دارد که PDO در برخی از دیتابیس‌ها، از حالت پارامتر شده استفاده نکند. تنها مزیت MySQLi نسبت به PDO این است که در MySQLi همیشه و همیشه کوئری‌ها بصورت پارامتر شده ارسال می‌شوند. با این حال PDO مزیت‌های بیشتری نسبت به MySQLi  داشته و پارامتری کردن آن با دستور بالا و استفاده از نسخه دیتابیس هماهنگ، تضمین خواهد شد.

 

بنابراین پس از اینکه PDO تنظیم و آماده استفاده شد، با مثالی نحوه کار PDO را شرح میدهیم.

ابتدا از ترای - کچ برای مدیریت خطاها استفاده می‌کنیم:

try {

//کوئری خود را ابتدا به دیتابیس ارسال می‌کنیم

$stmt = $db->prepare("SELECT name, lastname FROM users WHERE key = :getkey AND username = :getusername);

//پارامترهای دلخواه خود را بایند می‌کنیم یا می‌توانیم به صورت مستقیم در اجرا، آن‌ها را وارد کنیم

$stmt->bindParam(':getkey', $key, PDO::PARAM_INT); 

با ست کردن آرگومنت سوم، نوع داده را مشخص می‌کنیم. در اینجا، عدد صحیح

$stmt->bindParam(':getusername', $_POST[""]); 

//اگر نوع را مشخص نکنیم، به صورت پیشفرض رشته حروفی است.

//حال کوئری و پارامترها را جداگانه به سرور می‌فرستیم.

$stmt->execute();

//داده‌های گرفته شده از دیتابیس را ذخیره می‌کنیم

$rowF = $stmt->fetchAll();

if ($rowF){

// اگر رکوردی پیدا شد

foreach ($rowF as $row){

//برای هر رکورد، عملی را انجام می‌دهیم

echo "Your name is: " . $row["name"] . " and your last name is: " . $row["lastname"];

}

}else{

// اگر رکوردی پیدا نشد

echo "No records found with the Key and Username.";

}

}catch(PDOException $e){

// اگر خطایی بوجود آمد. پس از اتمام برنامه نویسی حتماً این خطا را از دید کاربر مخفی کنید

echo "ERROR: " . $query . "<br>" . $e->getMessage();

}

 

 

روش های مقابله

۱. بهترین راه مقابله با حملات SQL Injection چک کردن ورودی ها قبل ارسال آنها به پایگاه داده به عنوان یک Query است. میتوانید ورودی فرم ها را به کمک روشهای مختلف چک کنید که حاوی کارکترهای غیرمجاز نباشند.

۲. پیام‌های خطایی که ایجاد می‌کنید با دقت بیشتری انتخاب کنید.مثلاً خطای  ‘ نام کاربری نمی‌تواند شامل اعداد باشد’ را که توسط پایگاه داده برگردانده می‌شود در نظر بگیرید. همین اطلاعات کم می تواند به مهاجم این کمک را بکند که در قسمت نام کاربری اعداد را وارد نکند.

۳. نسخه‌های مختلف دیتابیس‌ها (مثلاً MySQL های قدیمی ) دارای مشکلات امنیتی مختلفی هستند. همواره برنامه دیتابیس خود را آپدیت نمایید.

۴. زبان‌های برنامه نویسی PHP و ASP.NET پچ‌های امنیتی برای باگ‌های خود منتشر می‌کنند، پس همیشه از آخرین نسخه استفاده کنید.

۵. پس از اتمام کار برنامه نویسی، خاصیت نشان دادن خطاهای دیتابیس را غیرفعال کنید یا حداقل آن‌ها را به کاربر نشان ندهید.

۶. یوزری که از آن برای دسترسی به دیتابیس استفاده میکنید را محدود کنید.

۷. اطلاعات حساس (مانند رمزهای عبور) را به صورت هش شده با الگوریتمهای قوی، سالت (Salt) شده و کند ذخیره کنید تا حتی درصورت از دست رفتن، پیدا کردنشان دشوار باشد.

اگر از نسخه‌های جدید تر MySQL (مانند ۵.۱ و ۵.۵ و ۵.۶ و ...) و PDO با DSN کاراکتر ست (در PHP نسخه ۵.۳.۶ و بالاتر) استفاده می‌کنید، و کاراکتر ست دیتابیس خودتان را به یک کاراکتر ست امن (مانند UTF-8) تنظیم کرده و البته همه متغیرهای ورودی کاربران را با استفاده از PDO بصورت پارامتر شده به سرور دیتابیس ارسال نمایید، سرویس شما به شرط این که در همه جا از این دستورات پارامتر شده استفاده کنید، اگر در مقابل باگ SQL Injection تا ۱۰۰% امن نباشد، حداقل ۹۹% امن خواهد شد. چون امنیت در هیچ چیزی ۱۰۰% نیست!

 

 

1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

امتیاز کاربران

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال

در مقاله نرم افزار وب میل Horde در سی پنل ، با این نرم افزار و نحوه مدیریت آن برای ارسال و دریافت ایمیل آشنا شدیم. حال میخواهیم به توضیح برخی تنظیمات کاربردی در این نرم افزار بپردازیم.

ممکن هست شما بخواهید که در این وبمیل برخی ایمیل های ارسالی و یا دریافتی را حذف نمایید.اما با حذف ایمیل ها به جای پاک شدن و یا انتقال به پوشه trash ، ممکن هست که روی ایمیل حذف شده یک خط کشیده شود.

در صورتیکه بخواهیم با حذف ایمیل ها ، به طور کامل پاک شوند باید تنظیماتی را در Horde انجام دهید.

ابتدا وارد وب میل Horde میشویم.

از منوی بالا روی گزینه تنظیمات horde که به صورت یک چرخ دهنده نمایش داده شده است، سپس Preferences  و سپس Mail کلیک میکنیم.

در صفحه باز شده ، در بخش Message ، روی گزینه Deleting and Moving Messages کلیک میکنیم.

در صفحه جدید گزینه Move deleted messages to your Trash mailbox instead of marking them as deleted in the current mailbox? را فعال کرده و سپس گزینه Save را میزنیم.

پس از زدن گزینه Save ،  چند گزینه به صفحه اضافه خواهد شد:

در قسمت Trash mailbox ، باید پوشه ای که ایمیل ها پس از حذف به آن منتقل خواهند شد را انتخاب کنیم.

در قسمت  Purge Trash how often ، تعیین میکنیم که پس از چه مدت ایمیل ها پس از حذف و انتقال به پوشه انتخاب شده در بالا ، به طور کامل حذف شوند.

در انتها جهت ذخیره تغییرات بر روی گزینه Save کلیک میکنیم.

1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

امتیاز کاربران

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال

در این مقاله قصد داریم نحوه حذف ایمیل ها از طریق فایل منیجر سی پنل را شرح دهیم. با این کار نیازی نیست تا برای حذف ایمیل ها وارد وب میل هاست شوید.

 

نحوه حذف ایمیل های هاست از طریق file manager

پس از ایجاد اکانت های ایمیل از طریق سی پنل ، ممکن است روزانه تعداد زیادی ایمیل های ناخواسته و اسپم دریافت کنیم که حاوی متن و تصاویر زیادی هستند .این موضوع پس از گذشت مدت ها ممکن است منجر به پر شدن فضای هاست شود.یکی از روش های حذف این ایمیل های مزاحم ، از طریق وبمیل است که باید وارد آن شده و سپس ایمیل های اسپم را یک به یک حذف نمود. 

حال در صورتیکه که به وب میل هاست دسترسی نداشته باشیم ، میتوانیم از طریق فایل منیجر سی پنل تمامی ایمیل های دریافتی ، ارسال شده ، حذف شده و اسپم ها را انتخاب کرده و سپس حذف نمود. پس به توضیح نحوه حذف ایمیل ها از طریق فایل منیجر سی پنل میپردازیم.

 

حذف ایمیل های دریافتی از طریق فایل منیجر

برای انجام این کار ابتدا وارد سی پنل هاست شده و از بخش FILES بر روی گزینه File Manager کلیک میکنیم.

حال در دایرکتوری home هاست روی گزینه mail دابل کلیک میکنیم تا وارد دایرکتوری mail شویم.

در این دایرکتوری ، تعدادی فولدر وجود دارد که ابتدای نام آنها یک دات یا نقطه وجود دارد و در ادامه نام آنها مانند اکانت های ایمیل ساخته شده داخل هاست است.مانند test@itsay_ir.

 

دسته بندی های دریافت ایمیل در سی پنل

پس از وارد شدن به فولدر اکانت ایمیل مورد نظر ،  تعدادی فولدر داخل آن مشاهده میشود که به ترتیب آنها را شرح میدهیم :

• در فولدر Drafts ایمیل هایی که نوشته شده ولی هنوز ارسال نشده است ذخیره میشود.

• در فولدر Junk ایمیل های اسپم یا هرزنامه هایی که برای ما ارسال شده است، ذخیره میشود.

• در فولدر Sent ایمیل های ارسال شده برای دیگران ، ذخیره میشود.

• در فولدر Trash ایمیل هایی که از طریق وب میل حذف شده اند ، نگهداری میشود.

• در فولدر Cur ایمیل هایی که در اینباکس هستند و خوانده شده اند، ذخیره میشود.

• در فولدر New  ایمیل هایی که در اینباکس هستند و هنوز خوانده نشده اند ، نگهداری میشود.

 

حذف تمام ایمیل های وب میل سی پنل

باید توجه داشته باشید که به هیچ عنوان هیچ یک از این فولدرها را حذف نکرده و سطح دسترسی آنها را تغییر ندهید که در غیر اینصورت ایمیل های هاست با اختلال جدی مواجه خواهد شد. حال اگر بخواهیم تعدادی از ایمیل های اینباکس را حذف نماییم وارد پوشه cur میشویم.

تعدادی فایل در اینجا مشاهده میشود که ایمیل هایی هستند که در حال حاضر داخل اینباکس وب میل ما وجود دارد.برای حذف آنها از طریق گزینه Select All در نوار بالا همه را انتخاب کرده و سپس روی آنها راست کلیک کرده و سپس گزینه Delete را میزنیم.دقت نمایید که در این مسیر تنها این فایل ها را انتخاب کرده و فایل یا فولدر دیگری را حذف نکنیم.

و  سپس از پنجره trash بر روی دکمه confirm کلیک کرده تا ایمیل ها حذف شوند.

در صورتیکه این فایل ها را به اشتباه حذف نمودید ، میتوانید از طریق دایرکتوری Trash ، آنها را بازیابی نمایید.برای آشنایی با نحوه این کار به مقاله نحوه بازگردانی فایل های حذف شده در سی پنل ، مراجعه نمایید.

 

1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

امتیاز کاربران

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال

در این مقاله با نحوه حذف فایل ها و خالی کردن سطل زباله ( Trash ) در سی پنل آشنا خواهید شد.با این کار میتوانید فایل های داخل هاست خود را به طور کامل از هاست حذف نمایید. در صورتیکه فضای هاست شما پر شده باشد با این کار خواهید توانست هاست را خالی کرده و مجدد از این فضا برای آپلود فایل استفاده نمایید.

 

حذف فایل ها در سی پنل

در ورژن های قدیمی سی پنل ، به محض حذف فایل یا فولدر ، آن فایل حذف میشد.بدین جهت در صورتیکه فایل به اشتباه حذف میشد ،به هیچ عنوان امکان بازیابی نداشت. در ورژن جدید سی پنل ، قابلیت به نام Trash یا سطل زباله اضافه شد . با استفاده از این امکان ، در صورتیکه فایل یا فولدری  از داخل هاست خود حذف نمایید ، به سطل زباله منتقل خواهد شد و این امکان وجود دارد که آن را مجدد بازیابی کرد. برای اینکه فایل یا فولدر به صورت کامل از داخل هاست حذف شود ، باید از داخل سطل زباله نیز آن را حذف نمود. 

تنها اشکالی که دارد این است که به علت اینکه فایل های حذف شده را داخل خود ذخیره میکند، باعث پر شدن فضای هاست خواهد شد که با حذف فایل ها از داخل آن فضای هاست خالی و مجدد قابل استفاده خواهد بود.

 

آموزش حذف فایلها در فایل منیجر سی پنل

برای انجام این کار ابتدا به سی پنل هاست خود وارد شده و و از بخش FILES بر روی File Manager  کلیک میکنیم.

 

حال در دایرکتوری home هستیم ، که فایل های ساختاری و اساسی هاست در آن قرار گرفته است. وارد دایرکتوری public_html میشویم.میخواهیم یکی از فایل های این قسمت را حذف نماییم.

روی فایل مورد نظر کلیک راست کرده و گزینه Delete را میزنیم.

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

حال پنجره Trash نمایش داده میشود که داخل آن عبارت Skip the trash and permanently delete the files نمایش داده میشود که در صورتیکه این گزینه را فعال کنیم، فایل ها به داخل مسیر Trash نرفته و به طور کامل از هاست حذف خواهد شد. ما این گزینه را فعال نمیکنیم تا پس از زدن گزینه Confirm ، فایل به پوشه Trash منتقل شود.

 

خالی کردن سطل زباله سی پنل

حال میخواهیم از پوشه Trash فایل هایی که به آن منتقل شده است را به طور کامل از هاست حذف کنیم. برای انجام این کار در فایل منیجر هاست در نوار ابزار بالا بر روی گزینه view trash کلیک میکنیم.


در این پوشه تمام فایل هایی که در هاست حذف کرده ایم قابل مشاهده است. برای حذف این فایل ها به صورت دائم از روی هاست، روی گزینه کلیک Empty Trash کلیک میکنیم.

 

نحوه بازگردانی و بازیابی فایل های حذف شده در هاست سی پنل

حالا اگر بخواهیم فایل هایی که در سی پنل حذف کرده ایم و در پوشه Trash قرار گرفته اند را بازیابی کنیم،از نوار بالای فایل منیجر سی پنل مجدد بر روی view trash کلیک میکنیم.

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

پس از انجام این کار فایل های حذف شده به مسیر اولیه خود داخل هاست بازگردانی خواهند شد.