فوروارد ساب دامنه

فوروارد ساب دامنه:گاهی ممکن است بخواهیم یک ساب دامنه از یک دامنه را روی یک هاست دیگر استفاده کنیم و یا به بیان دیگر اطلاعات ساب دامنه یک سایت از یک هاست دیگر بارگذاری شود،برای اینکار کافی است مراحل بسیار ساده زیر را انجام دهیم :

1.وارد ناحیه کنترل پنل مدیریت سایت خود شوید و از قسمت Domains روی Simple DNS Zone Editor کلیک کنید.

subdomainforward

2.در این صفحه مطابق تصویر ساب دامین و آی پی سرور هاست دوم را در کادر ها وارد نمائید و سپس روی دکمه Add an A Record کلیک نمائید.

subdomainforward

فوروارد دامین و پارک دامین

فوروارد دامین چیست ؟ Forward Domain

چنانچه بخواهید دامین یا دامینهایی که ثبت نموده اید بر روی دامین اصلی و یا وب سایت اصلی شما لینک شود (فوروارد شود) آنرا فوروارد می نماییم .
در این حالت نام دامین فرعی (مبدا) به دامین اصلی (مقصد) تغییر میکند.
مثال دامین :karahost.org فوروارد است بر روی karahost.net فوروارد شده است.

روش تنظیم فوروارد دامین :

آموزش ریدایرکت دامنه در cpanel :

– وارد cPanel شوید.
– در ناحیه ی Domains مطابق شکل زیر وارد بخش Redirects شوید.

مدیریت ریدایرکت ها در سی پنل

– پس از ورود به این بخش، یک فرم مشابه تصویر زیر مشاهده خواهید کرد.

نحوه اضافه کردن ریدایرکت در سی پنل

– در قسمت Type میبایست نوع ریدایرکت خود را تعیین کنید. همانطور که پیشتر هم گفته شد این امر در سئو ی سایت شما تاثیر گذار خواهد بود. در اینجا در صورتی که قرار است این ریدایرکت فقط برای مدت کوتاهی روی این آدرس اعمال شود میبایست Temporary 302 و در غیر این صورت Permanent 301 را انتخاب نمایید.
– در قسمت بعدی از منوی کشویی، دامنه یا سابدامین مورد نظرتان را انتخاب کنید. اگر قصد ریدایرکت کل دامنه را دارید فیلد روبرویی را خاله گذاشته و در غیر این صورت مسیر مورد نظر را در فیلد روبرو وارد کنید. مثلا اگر بخواهید فولدر forum از دامنه ی domain.com را به مسیر جدیدی هدایت کنید، میبایست در فیلد دوم عبارت /forum را وارد کنید و …
– در قسمت redirects to آدرس مقصد را به همراه پروتکل به صورت کامل بنویسید. یعنی فراموش نکنید که http:// یا https:// یا ftp:// را بر حسب نیاز پیش از آدرس مورد نظر بیاورید.
– قسمت بعدی یعنی www redirection را دست نخورده باقی بگذارید تا دامنه ی مورد نظر، گه زمانی که با www وارد شود و چه زمانی که بدون www وارد شود، به آدرس جدید هدایت گردد.
– و اما میرسیم به گزینه ی Wild Card Redirect. این گزینه را در زیر برای شما شرح میدهم :

Wild Card Redirect چیست؟
فرض کنید شما برای دامنه ی Domain.com یک ریدایرکت تنظیم کرده اید و این دامنه را به Domain.ir ریدایرکت نموده اید. در حالت عادی اگر کسی آدرس Domain.com/About را وارد کند، به دامنه ی جدید هدایت شده و آدرس Domain.ir برایش به نمایش در خواهد آمد. میبینید؟ اتفاقی که میافتد این است که ادامه ی آدرسی که کاربر درخواست کرده بود از دست میرود و بجای اینکه کاربر به بخش About که از پیش درخواست کرده بود برود، به صفحه ی اصلی دامنه ی Domain.ir هدایت خواهد شد.
اگر میخواهید این اتفاق نیفتد و کاربر در عین هدایت شدن به مسیر جدید، آدرس درخواستی خود را از دست ندهد، کافی است گزینه ی Wild Card Redirect را فعال کنید. در این حالت اگر کاربر آدرس Domain.com/About را وارد کند به آدرس Domain.ir/About هدایت خواهد شد.
توجه داشته باشید که Wild Card Redirect را نباید با WildCard DNS اشتباه گرفت.

– در پایان کار روی دکمه ی Add کلیک کنید تا ریدایرکت شما به سیستم اضافه شود.
پس از اتمام کار باید قادر باشید ریدایرکت جدید را در بخش Current Redirects در پایین صفحه مشاهده نمایید.

آموزش ریدایرکت (فوروارد ) دامنه در دایرکت ادمین :

وارد پنل دایرکت ادمین شوید سپس در قسمت Advanced Features روی گزینه Site Redirection کلیک نمایید .

 

آموزش ریدایرکت دامنه در دایرکت ادمین

وارد صفحه تنظیمات ریدایرکت می شوید .

آموزش ریدایرکت دامنه در دایرکت ادمین

– در شروع در فیلد اول Local URL Path مسیر مبدا را وارد نمایید. اگر می خواهید دامنه اصلی ریدایرکت شود، این قسمت را خالی بگذارید و اگر می خواهید ساب دامین ریدایرکت شود، نام ساب دامنه را وارد نمایید.

در قسمت Redirect Type نوع ریدایرکت را مشخص نمایید:
– permanent – 301 : به صورت دائمی دامنه را ریدایرکت می کند. با استفاده از ریدایرکت ۳۰۱ ، آدرس قدیم را بر روی آدرس جدید ریدایرکت می کنیم تا هم بازدیدکنندگان و خزنده های موتورهای جستجوگر را به آدرس جدید هدایت کنیم و هم اینکه به موتورهای جستجوگر بفهمانیم که آدرس قدیمی برای همیشه به آدرس جدید تغییر کرده است .
– 302 – Temporary: به صورت موقت دامنه را ریدایرکت می کند. اگر قصد دارید در آینده تغییراتی در دامین داشته باشید  از ریدایرکت موقت استفاده نمایید . با استفاده از ریدایرکت ۳۰۲ صفحه مورد نظر خود را به آدرس جدید منتقل کنید. با استفاده از این روش، نه تنها از به وجود آمدن ارور ۴۰۴ جلوگیری می‌کنید، بلکه به موتورهای جستجو می‌فهمانید که این صفحه به طور موقت منتقل شده است و ممکن است دوباره به حالت عادی بازگردد یا به طور دائم به آدرسی دیگر منتقل شود. به این ترتیب، ارزش و ورودی‌های صفحه همچنان حفظ می شود و آدرس موقت در موتورهای جستجو ایندکس نمی‌شود
– 303 – Replaced: بر خلاف 301 و 302 یک جانشین برای سایت اصلی نمی باشد. هدف ارجاع یک آدرس به آدرسی دیگر است.

– در فیلد سوم Destination URL  آدرس مقصد را وارد نمایید آدرس را به صورت کامل وارد نمایید مانند http://www.redirected.com
در نهایت روی save کلیک کنید تا ریدایرکت ساخته  شود.


پارک دامین چیست ؟ Park Domain , Domain Aliases

چنانچه بخواهید دامین یا دامینهایی که ثبت نموده اید بر روی دامین اصلی و یا وب سایت شما لینک شود(پارک شود) آنرا از طریق پارک دامین انجام خواهید داد .
در این حالت نام دامین فرعی (مبدا) به دامین اصلی (مقصد) تغییر نمیکند.
مثال :دامین sgr.ir بدون تغییر نام محتویات قابل انتشار sgr.comرا نمایش میدهد.

روش تنظیم پارک دامین  :

آموزش پارک دامنه در سی پنل :

بدین منظور وارد هاست خود شده و در قسمت Domains روی گزینه Aliases کلیک کنید .

سپس در قسمت Create a New Alias نام دامنه خود را وارد کنید و روی گزینه Add Domain کلیک کنید

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

بدین ترتیب دامنه در هاست شما پارک شده و سایت با دامنه جدید قابل مشاهده خواهد بود .

(وارد کنترل پانل وب هاستینگ خود میشوید و روی گزینه Domain Aliases کلیک نموده و الیاس دامین به نام دامنه فرعی ایجاد میکنید ) پس از ساخت الیاس دامین ، وارد پانل دامین خود میشوید و name server های دامین یا دامین های فرعی خود را دقیقا name server های دامین اصلی (وب سایت) خود قرار میدهید . 

آموزش پارک دامنه در دایرکت ادمین:

وارد پنل دایرکت ادمین شوید.

سپس از قسمت Domain Management گزینه Domain Pointers را انتخاب کنید.

بعد از ورود به صفحه جدید در فیلد Source Domain نام کامل دامنه ای را که میخواهید روی دامنه اصلی سایت پارک شود را بنویسید و روی Add کلیک نمایید .

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

همانطور که ملاحظه می کنید نام دامنه جدید به لیست Source Domain افزوده می شود ، به این ترتیب شما می توانید علاوه بر دامنه اصلی با استفاده از دامنه جدید سایت خود را مشاهده کنید .

در صورتی که از پارک دامنه منصرف شده اید می توانید با کلیک روی گزینه Deleteدامنه را حذف نمایید
با کلیک روی گزینه View در قسمت DNS می توانید مشخصات دی ان اس دامنه را مشاهده کنید .

Calculate Number of Days Between Two Dates

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

نیاز به فرمی بری ثبت نام کاربران در یک رویداد چند روزه  داریم. کاربر می تواند تاریخ اول (ورود) و تاریخ دوم (خروج یا  پایان)را  که میخواهد در رویداد شرکت کند را انتخاب کند . برای هر روز حضور، آنها باید هزینه حضور 50 هزار تومان را پرداخت کنند. چگونه میتوانیم کل قیمت را که باید برای ثبت نام پرداخت کند محاسبه کنیم؟

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

روش استفاده از کد :

1- کد های زیر را در فایل فانکشن تم خود کپی کنید .

 

2- در گرویتی فرم ، فرمی بسازید و دو تاریخ به آن اضافه کنید و همچنین یک باکس عددی جهت خروجی تفاضل تاریخ

3-قسمت آخر کد را دقت کنید و اعداد را بر اساس آیدی فرم ساخته شده ، آیدی تاریخ اول ،آیدی تاریخ دوم  و آیدی باکس عددیی که اختلاف روزها را نشان میدهد تغییر دهید .

4- دقت کنید برای محاسبه مبلغ روزها فیلد دیگری به فرم اضافه کنید و در قسمت محاسبات فیلد ، فیلد روزها را ضربدر قیمت هر روز کنید.

موفق و پیروز باشید.

 


class GWDayCount {

    private static $script_output;

    function __construct( $args ) {

        extract( wp_parse_args( $args, array(
            'form_id'          => false,
            'start_field_id'   => false,
            'end_field_id'     => false,
            'count_field_id'   => false,
            'include_end_date' => true,
            ) ) );

        $this->form_id        = $form_id;
        $this->start_field_id = $start_field_id;
        $this->end_field_id   = $end_field_id;
        $this->count_field_id = $count_field_id;
        $this->count_adjust   = $include_end_date ? 1 : 0;

        add_filter( "gform_pre_render_{$form_id}", array( &$this, 'load_form_script') );
        add_action( "gform_pre_submission_{$form_id}", array( &$this, 'override_submitted_value') );

    }

    function load_form_script( $form ) {

        // workaround to make this work for < 1.7
        $this->form = $form;
        add_filter( 'gform_init_scripts_footer', array( &$this, 'add_init_script' ) );

        if( self::$script_output )
            return $form;

        ?>

        <script type="text/javascript">

        (function($){

            window.gwdc = function( options ) {

                this.options = options;
                this.startDateInput = $( '#input_' + this.options.formId + '_' + this.options.startFieldId );
                this.endDateInput = $( '#input_' + this.options.formId + '_' + this.options.endFieldId );
                this.countInput = $( '#input_' + this.options.formId + '_' + this.options.countFieldId );

                this.init = function() {

                    var gwdc = this;

                    // add data for "format" for parsing date
                    gwdc.startDateInput.data( 'format', this.options.startDateFormat );
                    gwdc.endDateInput.data( 'format', this.options.endDateFormat );

                    gwdc.populateDayCount();

                    gwdc.startDateInput.change( function() {
                        gwdc.populateDayCount();
                    } );

                    gwdc.endDateInput.change( function() {
                        gwdc.populateDayCount();
                    } );

                    $( '#ui-datepicker-div' ).hide();

                }

                this.getDayCount = function() {

                    var startDate = this.parseDate( this.startDateInput.val(), this.startDateInput.data('format') )
                    var endDate = this.parseDate( this.endDateInput.val(), this.endDateInput.data('format') );
                    var dayCount = 0;

                    if( !this.isValidDate( startDate ) || !this.isValidDate( endDate ) )
                        return '';

                    if( startDate > endDate ) {
                        return 0;
                    } else {

                        var diff = endDate - startDate;
                        dayCount = diff / ( 60 * 60 * 24 * 1000 ); // secs * mins * hours * milliseconds
                        dayCount = Math.round( dayCount ) + this.options.countAdjust;

                        return dayCount;
                    }

                }

                this.parseDate = function( value, format ) {

                    if( !value )
                        return false;

                    format = format.split('_');
                    var dateFormat = format[0];
                    var separators = { slash: '/', dash: '-', dot: '.' };
                    var separator = format.length > 1 ? separators[format[1]] : separators.slash;
                    var dateArr = value.split(separator);

                    switch( dateFormat ) {
                    case 'mdy':
                        return new Date( dateArr[2], dateArr[0] - 1, dateArr[1] );
                    case 'dmy':
                        return new Date( dateArr[2], dateArr[1] - 1, dateArr[0] );
                    case 'ymd':
                        return new Date( dateArr[0], dateArr[1] - 1, dateArr[2] );
                    }

                    return false;
                }

                this.populateDayCount = function() {
                    this.countInput.val( this.getDayCount() ).change();
                }

                this.isValidDate = function( date ) {
                    return !isNaN( Date.parse( date ) );
                }

                this.init();

            }

        })(jQuery);

        </script>

        <?php
        self::$script_output = true;
        return $form;
    }

    function add_init_script( $return ) {

        $start_field_format = false;
        $end_field_format = false;

        foreach( $this->form['fields'] as &$field ) {

            if( $field['id'] == $this->start_field_id )
                $start_field_format = $field['dateFormat'] ? $field['dateFormat'] : 'mdy';

            if( $field['id'] == $this->end_field_id )
                $end_field_format = $field['dateFormat'] ? $field['dateFormat'] : 'mdy';

        }

        $script = "new gwdc({
                formId:             {$this->form['id']},
                startFieldId:       {$this->start_field_id},
                startDateFormat:    '$start_field_format',
                endFieldId:         {$this->end_field_id},
                endDateFormat:      '$end_field_format',
                countFieldId:       {$this->count_field_id},
                countAdjust:        {$this->count_adjust}
            });";

        $slug = implode( '_', array( 'gw_display_count', $this->start_field_id, $this->end_field_id, $this->count_field_id ) );
        GFFormDisplay::add_init_script( $this->form['id'], $slug, GFFormDisplay::ON_PAGE_RENDER, $script );

        // remove filter so init script is not output on subsequent forms
        remove_filter( 'gform_init_scripts_footer', array( &$this, 'add_init_script' ) );

        return $return;
    }

    function override_submitted_value( $form ) {

        $start_date = false;
        $end_date = false;

        foreach( $form['fields'] as &$field ) {

            if( $field['id'] == $this->start_field_id )
                $start_date = self::parse_field_date( $field );

            if( $field['id'] == $this->end_field_id )
                $end_date = self::parse_field_date( $field );

        }

        if( $start_date > $end_date ) {

            $day_count = 0;

        } else {

            $diff = $end_date - $start_date;
            $day_count = $diff / ( 60 * 60 * 24 ); // secs * mins * hours
            $day_count = round( $day_count ) + $this->count_adjust;

        }

        $_POST["input_{$this->count_field_id}"] = $day_count;

    }

    static function parse_field_date( $field ) {

        $date_value = rgpost("input_{$field['id']}");
        $date_format = empty( $field['dateFormat'] ) ? 'mdy' : esc_attr( $field['dateFormat'] );
        $date_info = GFCommon::parse_date( $date_value, $date_format );
        if( empty( $date_info ) )
            return false;

        return strtotime( "{$date_info['year']}-{$date_info['month']}-{$date_info['day']}" );
    }

}

# Configuration

new GWDayCount( array(
    'form_id'        => 16,
    'start_field_id' => 1,
    'end_field_id'   => 2,
    'count_field_id' => 4
) );

Calculate Number of Days Between Two Dates

Have you ever needed to calculate the number of days between two given date fields? Here’s a scenario for consideration.

Let’s say you have a Gravity Form set up to register users for a multi-day event. The user is able to select a start date and end date that they will be attending the event. For each day of attendance they must pay an attendance fee of $10. How can we calculate the total price they should pay for registration?

This snippet will allow to calculate the number of days between two date fields and then populate the calculated number of days into another field. This is beneficial because with this calculated number of days now available as a field value, we can use Gravity Forms’ Calculation Product to correctly calculate the registration fee based on the selected dates.

How do I install this snippet?

Easy peasy. Just copy and paste the code above into your theme’s functions.php file.

How do I use this functionality?

To use this snippet’s functionality just go directly below the snippet and instantiate the GWDayCount() class. Instantiate is a big word but all it means is that you’ll be creating a new “instance” of the GWDayCount() class with a set of parameters (aka options) for that specific instance.

Standard Usage

new GWDayCount( array(
form_id => 9,
start_field_id => 1,
end_field_id => 2,
count_field_id => 3
) );

Count “Nights” Only
End date is not included in the day count so you are essentially counting the number of “nights” between the two dates.

new GWDayCount( array(
form_id => 9,
start_field_id => 1,
end_field_id => 2,
count_field_id => 3,
include_end_date => false
) );

Once you instantiated the class you are finished! If you would like to have this functionality on multiple forms then just create a new instance of the class and fill in the parameters for the new form. That’s it!

Parameter Details

  • form_id: The form ID of the form you would like to apply this functionality to.
  • start_field_id: The ID of the date field that will contain the start date. This field must be a date field and the parameter only holds a single field.
  • end_field_id: This parameter holds the ID of the date field that will contain the forms end date. This field, like the start_field_id field, must be a date field and only holds a single field ID.
  • count_field_id: This parameter holds the ID of the field that will be populated with the calculated number of days between the start date and end date.
  • include_end_date: Defaults to true. Set to this false if you would like to count only “nights” where the start date would be the check-in date and the end date would be the check-out date.

Points of Note

  • This is currently only setup to work with “Date Picker” date fields. Let me know if you need this with other types of date fields in the comments.
Enable-Keep-Alive

KeepAlive یک ویژگی خاص جهت ارتباط بین کاربر و وب سرور است که اجازه برقراری و ارسال چندین فایل را در یک Connection فراهم می‌سازد تا سرعت لود وب سایت بیشتر شود. فعال سازی KeepAlive از دو طریق امکان‌پذیر خواهد بود. 1- فعال سازی KeepAlive از طریق Htaccess ( کاربرد برای هاست اشتراکی ) 2- فعال سازی KeepAlive از طریق وب سرور ( هاست اختصاصی و وب هاستینگ )

فعال سازی KeepAlive از طریق htaccess

به بخش مدیریت فایل پنل خود بروید.
در این جا مثال ما کنترل پنل Cpanel خواهد بود ولی در مجموع برای فعال سازی در سایر پنل‌ها نیز همین رویه کاربردی است.

به دایرکتوری Public_html رفته و فایل را پیدا کنید.
نکته : فایل htaccess. به صورت مخفی بوده و برای نمایش فایل‌های مخفی در دایرکتوری از آموزش نمایش فایل مخفی در Cpanel استفاده نمایید.

سپس فایل را با ویرایشگر سیپنل باز کنید و کد زیر را در آن کپی نمایید.
Header set Connection keep-alive
پس از وارد کردن کد بالا ، فایل را ذخیره کرده و از آن خارج شوید.
بدین ترتیب KeepAlive برای صفحات وب سایت شما فعال خواهد شد.

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

How to Enable Keep-Alive in WordPress to Speed up Your Site

learn How to Enable Keep-Alive in WordPress. You need to add ‘Connection: Keep-Alive’ HTTP header in your server in order to enable Keep-Alive. You can also Enable Keep-Alive using .htaccess in WordPress. Or you can choose to edit config file of your Apache/NGINX servers if you do not have access to .htaccess file. The easiest way to Enable Keep-Alive using .htaccess is to add a piece of code (given below).

keep alive
How to Enable Keep-Alive in WordPress to Speed Up your site

Before we start about the best practices to Enable Keep-Alive in WordPress and the dos and don’ts. First of all, we need to understand What Keep-Alive is? and How actually Keep-Alive works?

What is Keep-Alive and how it works?

Keep-Alive is a technique to let one TCP (Transmission Control Protocol) connection to access multiple files from server to web browser instead of creating new connection for every new request (file). Keep-Alive also known as persistent HTTP connection.

Furthermore, Lets’ discuss about how it works. You might know about the connection and coordination process of a web browser and server. When you visit a webpage, your web browser create a connection with web-server and sent a request to access a particular file, and server gives OK (go ahead) to the browser.

As a result, Browser started downloading the file, than create another connection for second file and the process goes on.

Suppose, if your web browser requires 10 (TEN) files to display a webpage, browser has to create 10 separate connections after each file download and request one by one to web server for OK to access files.

keep alive
Keep-Alive Disabled

Therefore, Enabling Keep-Alive help browsers to create only SINGLE connection to access all the files from web server in one go (or in single OK). It significantly reduces number of requests to the web-server, and as a result that reduces Server CPU Uses (Server Load) as well. In addition to that, you will get considerable improvement in page loading speed.

keep alive
Keep-Alive Enabled

How to enable Keep-Alive in WordPress

Whether you own a blog or a website, page-loading speed always matters and these simple techniques will boost your webpage loading speed by enabling Keep-Alive in WordPress.

Before applying any method, I would suggest you to check whether, is it already enabled on your website or disabled. Because, most of the modern hosting services had already activated Keep-Alive by default. However, you should check it by using this link.

Enable Keep-Alive plays an important role in order to increase your website loading speed. This is one of the most commonly adaptive method by pro-bloggers to reduce website loading time.

Finally, let’s discuss, how to Enable Keep-Alive using .htaccess in WordPress or on Apache/NGINX servers.

How to Enable Keep-Alive using .htaccess file in WordPress

You need to add the given below piece of code into your .htaccess file.

# TN START ENABLE KEEP ALIVE
<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>
# TN END ENABLE KEEP ALIVE

Add this code after the last line in your .htaccess file; it will add Keep-Alive HTTP headersthat enables Keep-Alive.

Enable Keep-Alive in Apache

In most of the new Apache servers, Keep-Alive should be auto enabled. If it is not enabled, find Apache HTTP Server configuration file (httpd.conf) of your server.

you can find it here – /etc/httpd/conf/httpd.conf

and

Add the below written code in that file…

# Set it On to enable Keep-Alive, Off to disable Keep-Alive
KeepAlive On

# Set maximum requests per connection, set 0 for unlimited request, 100 request per connection is ideal
MaxKeepAliveRequests 100

# Set per connection timeout for next request
KeepAliveTimeout 15

Enable Keep-Alive in NGINX

In almost all the NGINX servers, Keep-Alive comes enabled by default. However, if it is not enabled you can check the same by finding ‘keepalive_disable’ in NGINX core module (ngx_http_core_module).

Have you Enabled Keep-Alive on your website. YES, NO, Not Sure. Do check it again and Enable Keep-Alive using .htaccess in WordPress now.

Hope you find this guide useful. Which method you use to Enable Keep-Alive? Did you find any improvement in page loading speed? Do let us know in the comment section below.

Cheers!

hsts

گروه IETF پروتکلی با نام HSTS معرفی کرده که به عنوان پیشنهاد استاندارد پذیرفته شده است. یك پروتكل امنیت وب كه برای محافظت از كاربران در وب سایتهایی كه از رمزنگاری استفاده نمی‌كنند طراحی شده است، به عنوان پیش نویس استاندارد در این زمینه پذیرفته شد.
این پروتكل جدید كه توسط گروه IETF(Internet Engineering Task Force) طراحی شده است، HSTS نام دارد كه مخفف HTTP Strict Transport Security می‌باشد.
پروتكل HSTS برای مقابله با سرقت نشست (session Hijacking) طراحی شده است كه در آن هكرها با شنود پیغام‌های رد و بدل شده بین كاربر و وب سایت اقدام به سرقت كوكی ها كرده و به اطلاعات ورود به سیستم كاربر دست پیدا می كنند.
پذیرفته شدن این پیشنهاد به عنوان استاندارد بستگی به پیچیدگی های فنی داشته و همچنین لازم است بتواند فواید قابل توجهی را به دنیای اینترنت عرضه دارد.
این پروتكل در حال حاضر توسط وب سایت های PayPal، Blogspot و Etsy مورد استفاده قرار گرفته است. همچنین پروتكل مذكور در مرورگرهای كروم، فایرفاكس 4 و اپرای 12 مورد استفاده قرار گرفته است. با این وجود هنوز IE و اپل سفری به این پروتكل روی نیاورده اند.
جهت اسکن وبسایت خود از لینک زیر استفاده کنید
https://hstspreload.org
برای سایت وردپرسی خود میتوانید ابتدا گواهی ssl تهیه کنید سپس افزونه Really Simple SSL را نصب کنید.

ویژگی های نرم افزار
اسکن محتوای مخلوط، که نشان می دهد شما چه کاری باید انجام دهید اگر هنوز قفل سبز ندارید

گزینه ای برای فعال کردن امنیت HTTP Strict Transport Security

گزینه ای برای پیکربندی سایت خود برای لیست پیش بارگیری HSTS

فیشر محتوی مخلوط

بازخورد دقیق تر در صفحه تنظیمات.

بررسی انقضا گواهی: هنگامی که گواهینامه SSL شما به پایان می رسد، یک ایمیل دریافت کنید.

این پلاگین مسائل مربوط به وردپرس را با ssl مدیریت می کند، مانند زمانی که شما در حال پشت سر گذاشتن پروکسی / loadbalancer هستید.

تمام درخواست های ورودی به https هدایت می شوند. پیش فرض با یک تغییر مسیر داخلی وردپرس اینکار را انجام می دهد. اما شما همچنین می توانید تغییر مسیر .htaccess را فعال کنید.

آدرس سایت و آدرس سایت به https تغییر می کند.

محتوای ناامن شما با جایگزینی تمام نشانی های http: // با https: // ثابت می شود، به جز لینک های hyperlinks به دامنه های دیگر. به طور پویا، پس هیچ تغییری در پایگاه داده انجام نمی شود (به استثنای siteurl و homeurl).

session hijacking

Especially if protocol-relative URLs are used for CDN links, their domain is not in the browser’s HSTS preload list, and the first request is not made over HTTP, there is a high risk of man-in-the-middle attacks.
Of course if the web site/app is served over HTTP it is already exposed to those types of attacks, but in general CDNs constitute a high-value target, and therefore, are much more likely to be attacked than most of the individual sites that use them.

If a site sends the preload directive in an HSTS header, it is considered to be requesting inclusion in the preload list and may be submitted via the form on this site.

In order to be accepted to the HSTS preload list through this form, your site must satisfy the following set of requirements:

  1. Serve a valid certificate.
  2. Redirect from HTTP to HTTPS on the same host, if you are listening on port 80.
  3. Serve all subdomains over HTTPS.
    • In particular, you must support HTTPS for the www subdomain if a DNS record for that subdomain exists.
  4. Serve an HSTS header on the base domain for HTTPS requests:
    • The max-age must be at least 31536000 seconds (1 year).
    • The includeSubDomains directive must be specified.
    • The preload directive must be specified.
    • If you are serving an additional redirect from your HTTPS site, that redirect must still have the HSTS header (rather than the page it redirects to).
حمله فیشینگ

بعد از حمله phishing به سایت چه کنیم؟

حمله فیشینگ  phishing چیست ؟

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

نگران نباشید با هم مشکل  حل میکنیم.

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

1)هکر ها در میان فایل های سیستم معمولا فایلی مشابه نامهای دیگر ایجاد میکنند و برای بازگشت به وبسایت راهی برای خود به جا میگزارند. پس بهتره بدون معطلی اول تمام پسوورد های هاست ، پنل سایت ، ایمیل ها  و ftp  تغییر بدین و کلمه عبور سخت انتخاب کنید.

2)کل محتویات هاستتون پاک کنید

3) بک آپ سایت خود را جایگزین آن کنید.

4) با استفاده از سایت های زیر سایت خود را اسکن کنید.

https://app.webinspector.com/
https://www.tinfoilsecurity.com
https://asafaweb.com
https://sitecheck.sucuri.net
….

5) از نظر امنیتی سایت خود را ایمن کنید

روش های زیادی وجود داره از جمله

  • برای صفحه لاگین دو مرحله پسورد قرار دهید.
  • همه قسمت ها سایت را آپدیت کنید ( پلاگین ، تم )
  • آی پی هایی که چند بار پسورد اشتباه وارد میکنند را بلاک کنید.
  • htaccess  را امن کنید.
  • ایمیل های هاست خود را چک کنید معمولا هکر ها ایمیل جدیدی ایجاد میکنند و به ایمیل شخصی خود فوروارد میکنند.
  • کار را یه متخصص امنیت بسپارید

6)اکنون سایت شما توسط گوگل و آنتی ویروس ها مسدود شده است برای رفع این مشکل

  • وارد اکانت وبمستر گوگل شوید اگر تا قبل از این عضو نشده بودید ابتدا باید سایت خود را با زدن دکنه property ابتدا اضافه کنید و مراحل varify  را انجام دهید سپس وارد شوید و از منو سمت چپ گزینه  security issuese را انتخاب کنید لیست لینک ها آلوده برایتان نمایش داده میشود بعد از اطمینان از اینکه لینک ها را حذف و یا اصلاح کردید ، گزینه  i fixed..  را کلیک کنید و در خواست بررسی مجدد برای گوگل بفرستید.
  • همچنین وارد منوی crawl / fetch as google  شده و درخواست دهید سایتتان fetch & render  شود.
  • در صورتی که وب سایت شما توسط آنتی ویروس ESET Nod32 بلاک شده است می بایست ایمیلی به آدرس ایمیل samples@eset.com ارسال نمایید و در عنوان نام دامنه خود را ذکر کنید. همچنین در بدنه ایمیل مشکل خود را به همراه نام دامنه خود مجددا توضیح داده و درخواست رفع بلاک نمایید. همچنین در ضمیمه ایمیل خطایی که در زمان رویت وب سایت توسط ESET Nod32 نمایش داده می شود را ضمیمه نمایید. ایمیل شما بررسی خواهد شد و در صورت نبود مشکل معمولا ظرف مدت دو روز در دیتابیس ESET Nod32 ثبت می گردد و در به روز رسانی بعدی لحاظ می گردد.
  • در صورتی که وب سایت شما توسط آنتی ویروس norton بلاک شده است وارد وبسایت  https://safeweb.norton.com/  شوید ثبت نام کنید در قسمت پروفایل خود در تب site dispute  وبسایت خود را اضافه و varify  کنید    در خواست مجدد برای بررسی دهید.

7) 2روز تا 2 هفته درخواست های شما بررسی میشود و سایت شما به حالت قبل باز میگردد

 

لطفا تجربیات خود را در قسمت دیدگاه بیان کنید.

هک

محققانی در سن‌دیگو یک ابزار تست جدید ابداع کرده‌اند که نشان می‌دهد هر ساله ده‌ها میلیون وب‌سایت در معرض هک هستند. تیم مهندسی ژاکوب در سن‌دیگو ادعا کرد که یک درصد از سایت‌ها در یک دوره ۱۸ ماهه به وسیله ابزار “tripwire” توسط آنها دچار شکست امنیتی شدند. این موضوع برای تمام وب‌سایت‌ها صرف نظر از مقیاس سایت صادق است.

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

پروژه “tripwire” با استفاده از یک روبات برای هر وب‌سایت یک حساب کاربری می‌سازد که به یک آدرس ایمیل منحصربه‌فرد وصل می‌شود و همان رمز عبور برای ایمیل و حساب کاربری وب‌سایت مورداستفاده قرار می‌گیرد. سپس گروه منتظر می‌ماند تا اگر نفر سومی از آن رمز عبور برای دسترسی به ایمیل استفاده کند، به این معنی خواهد بود که اطلاعات حساب وب‌سایت به بیرون درز کرده است.

بر اساس آمار و گزارشی که در وب‌سایت پلیس فتا منتشر شده است، به‌منظور اطمینان از اینکه شکاف امنیتی پیامد مشکلات وب‌سایت هست (و نه حساب ایمیل)، گروه یک گروه کنترلی متشکل از ۱۰۰۰ حساب ایمیل توسط یک تامین‌کننده ساخت که به هیچ حساب وب‌سایت دیگری متصل نبود. آن‌ها پی بردند که هیچ‌یک از این حساب‌های ایمیل توسط گروه سومی قابل‌دسترسی نبودند.

محققان ادعا کردند در مجموع، ۱۹ مورد از ۲۳۰۰ ایمیل متصل به‌حساب وب‌سایت که شامل ۴۵ میلیون کاربر فعال بود هک شدند. گروه مهندسی ژاکوب توصیه کرد که کاربران از یک رمز عبور برای چندین حساب استفاده نکنند تا میزان اطلاعات متصل به وب‌سایت‌ها بهینه شود و از یک نرم‌افزار مدیریت پسورد استفاده کنند.

how-safe-is-your-site-frome-cyber-attack

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

در هفته های اخیر، سایت های وردپرس هدف خاصی از “حملات خشونت آمیز” بوده اند – جستجوی خودکار کاملی از ترکیب جادویی نام کاربری و رمز عبور که می تواند موجب فاجعه به دست خودمان شود.

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

Many of us have had experience with spam emails, some of which carry a virus which can compromise our computers and cause hours, if not days, of inconvenience and frustration. We’re not always aware it’s happened, and sometimes our own systems at home can contribute to the expanding threat of cyber attackers.

In recent weeks, WordPress sites have been a particular target of “brute force attacks” – exhaustive automated searches for that magic combination of username and password that can spell disaster when it falls into the wrong hands.

At best, these repeated attempts to log in can affect the performance of your site. At worst, successful attempts which result in the violation of your site may bring it down all together, or create yet another infected environment which will contribute to the wider problem. We all have a responsibility to do what we can to protect ourselves, and others, from this risk.

هکرها نیمی از جواب را نمیدهند!

شگفت انگیز اما درست است: بسیاری از مدیران سایت وردپرس از “Admin” به عنوان نام کاربری خود استفاده می کنند! این خبر نیست – اما مطمئنا بدترین کار است. کریس جین، در مقاله ای عالی برای iThemes، معتقد است که تقریبا 99 درصد از تلاش ها برای استفاده از “admin” برای نام کاربری استفاده می شود. اگر این را با یک رمز عبور ضعیف مخلوط کنید، و شما می توانید در معرض مشکل باشید.

برای محافظت در برابر مشکلات، اینها اولین چیزهایی هستند که من انجام می دهم ،زمانی  که من یک نصب جدید وردپرس ایجاد می کنم:

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

استفاده از یک رمز عبور قوی نیز مهم است. حتما از ترکیبی از حروف و اعداد حروف، اعداد و یک علامت مانند @ استفاده کنید، و یا # … شما باید بتوانید چیزی را که میتوانید به  یادتان بسپارید با این وجود که پیچیده هم هست .

Don’t give the hackers half the answer!

Amazing but true: many WordPress site administrators are using “Admin” as their username! This is not news – but it is certainly bad practice. Chris Jean, in his excellent article for iThemes, reckons that almost 99% of attempts are using “admin” for the username. Mix this with a weak password, and you could be in trouble.

To safeguard against trouble, these are the very first things I do when I create a new installation of WordPress:

  1. Create a new user with Administrator-level permissions, and a strong password.
  2. Log out as the user named Admin, and log back in as the new user.
  3. From the new user login, I delete the original user named Admin.

Using a strong password is also important. Be sure to use a combination of upper and lower case letters, numbers, and a symbol like @, & or #…you should be able to come up with something memorable which is nevertheless complex.

افزایش امنیت وردپرس را جدی بگیرید ، تمام زحمات شما در ارتباط با سئو ممکن است با یک سهل انگاری دچار سقوط شود
Take seriously the increased security of WordPress, all your work in conjunction with SEO may fall with a negligence.

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

روش های افزایش امنیت وردپرس

    1. مسدود کردن ربات مخرب :

      یکی از بهترین روش برای مسدود سازی روبات یا افراد هکر برای دسترسی نداشتن به وبسایت و روت هاست این مورد از امنیت میباشد که با استفاده از کد زیر میتوانید این کار را انجام دهید لازم به ذکر است که ای پی ربات یا شخص در دسترس باشد .
      ابتدا وارد روت هاست خود شوید . در هاست سی پنل روت منظور داخل پوشه public_html   و روت در هاست پلسک پوشه  httpdocs است .
      فایلی به نام htaccess.  را باز کنید .( در صورتی که این فایل را پیدا نکردید دو حالت دارد ، یا مخفی است و یا اصلا ساخته نشده ، در سی پنل بالای صفحه سمت راست گزینه  setting  را بزنید و تیک گزینه Show Hidden Files (dotfiles)  را بزنید ،در صورتی که با وجود این تیک باز هم فایل htaccess. را نیافتید. باید آن را ایجاد کنید بدین صورت که در بالای صفحه سمت چپ روی گزینه file + کلیک کنید نام را مطابق تصویر وارد کرده گزینه create new file  را کلیک کنید . فایل شما ساخته شد حال با کلیک روی آن فایل را ادیت میکنیم و کد های زیر را در آن قرار داد و ذخیره کنید.

      ساخت htaccess

      # به جای IP_ADDRESS آدرس آی پی ربات را قرار دهید
      <Limit GET POST>
      order allow,deny
      deny from IP_ADDRESS_1
      deny from IP_ADDRESS_2
      allow from all
      </Limit>
    2. غیر فعال کردن دایرکتوری مرورگر‌ :

      یکی از نقص های مهم امنیتی در یک وبسایت وردپرسی

      به طور پیشفرض در وب سرویس آپاچی دیدن دایرکتوری از فایل ها میباشد . به این معنی که تمام فایل ها و پوشه ها در داخل دایرکتوری ریشه روت (گاهی در پوشه های مختلف) قابل دسترسی برای کابران عادی میباشد. بطور مثال فایل های : قالب وردپرس , افزونه وردپرس , و فایل ها آپلودی در دایرکتوری wp-content قرار دارند .
      برای از دسترس خارج کردن این بخش کافیه کد زیر را در فایل htaccess. قرار دهید :

      # غیر فعال کردن نمایش دایرکتوری وردپرس
      Options All Indexes
    3. افزایش امنیت پوشه wp-includes

      پوشه یا دایرکتوری wp-includes  (هسته اصلی وردپرس) مکان قرارگیری فایل های مهم وردپرس میباشد . با جلوگیری از دسترسی های غیرمجاز به این پوشه ، می توانید جلوی سو استفاده های احتمالی از محتویات آن را بگیرید .

      برای افزایش امنیت پوشه wp-includes کد زیر را در فایل .htaccess قرار دهید .

      # مسدود سازی پوشه wp-include
      RewriteEngine On
      RewriteBase /
      RewriteRule ^wp-admin/includes/ – [F,L]
      RewriteRule !^wp-includes/ – [S=3]
      RewriteRule ^wp-includes/[^/]+\.php$ – [F,L]
      RewriteRule ^wp-includes/js/tinymce/langs/.+\.php – [F,L]
      RewriteRule ^wp-includes/theme-compat/ – [F,L]

    4. مسدود کردن دسترسی افراد به صفحه ورود به پیشخوان وردپرس

      پوشه wp-admin که شامل فایل های مورد نیاز برای اجرای پیشخوان وردپرس میبشاد برای اغلب بازدید کنندگان دسترسی به داشبورد نیاز نمیباشد. مگر میخواهند ثبت نام کنند .
      یک اقدام امنیتی مطلوب که با فعال کردن چند آی پی به کاربران دسترسی به پوشه wp-admin یا همان پیشخوان میدهید .
      این قطعه کد اجازه میدهد تا تنها به کاربرانی اجازه ورود به پیشخوان وردپرس دهید که آی پی آنها در فایل htaccess درج شده باشد .

      نکته : یک فایل به نام htaccess. در پوشه wp-admin خود ایجاد کنید و کد زیر را درون آن قرار دهید . اگر این کد در فایل htaccess. روت اصلی شما قرار بگیرد دسترسی برای همگان جز چند آی پی درج شده میسر نمیباشد .
      کد زیر را در فایل htaccess. درون پوشه wp-admin قرار دهید :

      # محدودیت دسترسی به پیشخوان
      <Limit GET POST PUT>
      order deny,allow
      deny from all
      allow from 302.143.54.102
      allow from IP_ADDRESS_2
      </Limit>

    5. حفاظت از فایل wp-config.php در htaccess.

      فایل wp-config.php که شامل اعتبار سنجی و حساس ترین بخش وردپرس میباشد که شامل اطلاعات دسترسی به پایگاه داده و سایر داده های حیاطی میباشد که باید دسترسی به این فایل را از عموم خارج کرده تا امنیت فایل wp-config.php و وردپرس شما تامین شود .
      شما میتوانید برای از دسترس خارج کردن این فایل از عموم از کد زیر در فایل htaccess. استفاده کنید.

      # از دسترس خارج کردن فایل wp-confi.php
      <files wp-config.php>
      order allow,deny
      deny from all
      </files>

  و کلام پایانی اضافه کردن این کد ها باعث امن شدن 100% وردپرس نخواهد بود ، یا به عبارتی هیچ وقت امنیت صد در صد وجود ندارد .
برای افزایش امنیت سایت خود میتوانید با ما تماس بگیرید .