امروز جمعه 07 اردیبهشت 1403 http://amibct.cloob24.com
0

اگر سایت خود را با لاراول طراحی کرده باشید ممکن است هنگام مشاهده برخی صفحات با پیام «The page has expired due to inactivity» مواجه شوید.

این پیام به دلیل عدم وجود فیلد CSRF در صفحات POST یا سپری شدن مدت مجاز فیلد CSRF نمایش داده می‌شود.

اگر صفحه توسط فرم‌های موجود در سایت خودتان فراخوانی می‌شود، لازم است تا در هنگام ایجاد فرم فیلد CSRF را به صورت زیر در داخل آن قرار دهید:

 {{ csrf_field()}}

در صورتی که صفحه شما از بیرون سایت به صورت POST فراخوانی می‌شود. برای مثال هنگامی که از درگاه‌های بانکی استفاده می‌کنید و بانک پس از تکمیل فرآیند پرداخت کاربر را به سایتتان هدایت می‌کند، لازم است کنترل CSRF را روی این مسیر حذف نمایید.

چنانچه مسیر پرداخت شما نشانی شبیه آدرس زیر دارد:

http://example.com/pay/20/callback

برای استثنا شدن این مسیر، فایل «app/Http/Middleware/VerifyCsrfToken.php» را باز کنید و متغیر «except» را به شکل زیر ویرایش نمایید:

protected $except = [
'pay/*'
];
0

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

  • یک شبه طراح سایت شوید
  • یک ماهه برنامه نویس شوید
  • در عرض یک ساعت سایت خود را طراحی کنید
  • در عرض یک روز سئو را یاد بگیرید

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

به عبارت دیگر بهتر بود، عنوان تبلیغات بالا به شکل زیر تغییر می‌کرد:

  • فوری پول خود را به ما بدهید

یادگیری طراحی سایت و برنامه‌نویسی به چه مقدار زمان نیاز دارد؟

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

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

بنابراین اگر این بار با تبلیغات مشابه روبرو شدید، مفهوم واقعی پشت این گونه شعارهای تبلیغاتی را در ذهن خود بیاورید.

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

فراموش نکنید که پرداخت پول، صرف زمان برای دیدن آموزش و عدم دستیابی به نتیجه مورد انتظار، می‌تواند ذهن شما را فرسوده کند و شما را از ادامه‌ی راه ناامید نماید.

0

یکی از روش‌های بسیار ساده که هکرها برای نفوذ به سایت‌ها استفاده می‌کنند، تلاش برای دانلود نسخه‌های پشتیبان پایگاه داده، نسخه‌های پشتیبان فایل‌ها، فایل‌های تنظیمات و هرگونه فایل دیگر حاوی اطلاعات حساس که روی سرور نگهداری می‌کنید است.

برای مثال بسیار از هکرها تلاش می‌کنند فایل‌هایی با نام‌هایی مشابه فایل‌های زیر را از روی سایت‌های مختلف دانلود کنند:

1.zip
2.zip
a.tar.gz
b.tar.gz
public_html.zip
www.zip
wp-config.php.bak
configuration.php.bak

نام فایل‌هایی که نمی‌بایست روی سرور شما باشند، بسیار بیش از موارد بالا است و امکان لیست کردن تمامی این فایل‌ها همچنین به دلیل موارد امنیتی وجود ندارد.

بنابراین اگر سایت اینترنتی دارید، همیشه به خاطرداشته باشید، برای تهیه‌ی پشتیبان، بدترین محلی که می‌توانید انتخاب کنید، شاخه‌ی اصلی سایت شما است و بدترین نام‌هایی که می‌توانید انتخاب کنید، نام‌های پیش‌فرض و کوتاه هستند.

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

site-backup-1396-12-15-ok.zip
db-back-up-1396-12-15-sql-amib.zip
old-wp-config-1396-12.php
0

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

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

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

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

اگر سایت شما به ویروس آلوده شده است و در هنگام باز شدن به سایت‌های دیگر هدایت می‌شود یا پیام‌های ناخواسته در سایت خود مشاهده می‌کنید یا گوگل پیام سایت‌های هک شده را در آن نشان می‌دهد، لازم است تا از متخصصین خبره برای پاکسازی سایت خود کمک بخواهید

برای مشاوره و کسب اطلاعات بیشتر با ایمیل بنده در تماس باشید: amibct در gmail.com

0

در هنگام به‌روزرسانی وردپرس، ممکن است فرآیند به روزرسانی با خطایی مواجه شود و پیش از آنکه سایت شما به‌روزرسانی شود، کار ناقص بماند. در چنین شرایطی اگر بخواهید مجددا سایت را به روز رسانی کنید بسته به زبان سایت خود با پیام‌های زیر مواجه می‌شوید:

  • بروزرسانی دیگری در حال پیش‌روی است
  • Another update currently in process

برای رفع این مشکل دو کار قابل انجام است.

1- انتظار برای رفع مشکل

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

2- تغییر وضعیت وردپرس به صورت دستی

برای انجام این کار لازم است تغییراتی در پایگاه داده انجام دهید. جهت این کار phpMyAdmin را باز کنید و جدول options را بیابید. در این جدول برای عبارت «core_updater.lock» جستجو انجام دهید و اگر این مقدار را یافتید، آن را حذف کنید.
دقت کنید که انجام تغییرات در پایگاه داده باید با دقت انجام شود. عدم دقت در این کار می‌تواند به اطلاعات سایت شما آسیب بزند.

عدم رفع مشکل با روش‌های بالا

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

0
تشخیص تکنولوژی‌های استفاده شده در سایت‌های مختلف به صورت دقیق از راه دور امکان پذیر نیست. با این حال استفاده از فناوری‌های مختلف و زبان‌های برنامه‌نویسی مختلف، اثراتی روی خروجی سایت بر جای می‌گذارند که کمک می‌کنند اطلاعاتی از آن به دست بیاوریم.
سایت دیوار که کار ثبت و نمایش آگهی‌های اینترنتی را انجام می‌دهد با استفاده از فناوری‌های زیر آماده شده است که در مورد هر یک اطلاعاتی مختصر ارائه می‌کنم:
1- Express.js - به نظر می‌رسد که سایت دیوار در پشت صحنه از فریم‌ورک برنامه‌نویسی Express.js استفاده می‌کند. این فریم‌ورک با استفاده از زبان جاوااسکریپت و روی Node.js فعالیت می‌کند. استفاده از فریم‌ورک‌ها، می‌تواند توسعه‌ی نرم‌افزار را آسان کند و تغییر و رفع مشکلات را در آینده مدیریت نماید.
2- Python - Django - علاوه بر فریم‌ورک Express، به نظر می‌رسد که در پیاده‌سازی سایت دیوار از زبان برنامه‌نویسی پایتون و فریم‌ورک Django نیز استفاده شده است. شکل استفاده از این دو فریم‌ورک در کنار هم قابل شناسایی دقیق نیست. ولی استفاده از زبان‌های مختلف برای پشتیبانی سایت‌ها موضوع غیرمتداولی نیست. به ویژه هنگامی که یک زبان یا فریم‌ورک برنامه‌نویسی قابلیت‌های خاصی برای مدیریت برخی فعالیت‌ها داشته باشد.
3- Nginx - وب سرور Nginx ابزاری است که اغلب به عنوان Reverse Proxy مورد استفاده قرار می‌گیرد. به نظر می‌رسد سایت دیوار هم با استفاده از این وب سرور تلاش کرده است تا بار سنگین موجود روی سایت را مدیریت نماید. کار یک Reverse Proxy این است که درخواست‌های رسیده را از نظر امنیتی ارزیابی کند، در صورت تمایل بدون ارسال درخواست به فریم‌ورک، اطلاعات Cache را به مشتری بفرستد و در نهایت، بار سنگین درخواست‌های متعدد را بین چند وب سرور دیگر تقسیم نماید. همچنین یک Reverse Proxy می‌تواند برای رمزگزاری https درخواست‌ها و پاسخ‌ها به کارگیری شود.
4- React - استفاده از فریم‌ورک‌های سمت مشتری روز به روز در حال افزایش است. سایت دیوار نیز با استفاده از این فریم‌ورک سمت مشتری که توسط شرکت فیسبوک توسعه پیدا کرده است، به دنبال ایجاد یک رابط کاربری کاربرپسند برای مشتریان خود است.
سایر فناوری‌های استفاده شده در این سایت بدون دسترسی کامل به تیم توسعه دهنده‌ی آن قابل شناسایی با اطمینان کافی نیستند.
نکته‌ی دیگری که لازم است در این بخش گفته شود این است که استفاده از این فناوری‌ها توسط تیم توسعه‌ی دیوار به این معنی نیست که هر سایت دیگر با کاربری مشابه یا غیرمشابه، لازم است از همین فناوری‌ها استفاده کند. انتخاب ابزار و روش‌ها برای طراحی سایت و برنامه‌نویسی سایت به عوامل متعددی وابسته است که در لحظه و بر اساس شرایط موجود می‌بایست به انجام برسد.
0

برنامه‌نویسی در گذر زمان به صورت استاندارد در آمده است. به این معنی که هر برنامه‌نویس در هنگام نوشتن برنامه‌ها، بهتر است تا از اصولی خاص پیروی کند.

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

اگر هر برنامه‌نویس روش‌ها و قوانین خود را دنبال کند، تغییر دادن برنامه‌ها به کاری بسیار دشوار بدل خواهد شد.

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

در مدل MVC کدهای برنامه بر اساس اینکه چه کاری را به انجام می‌رسانند،‌ به سه قسمت تقسیم می‌شوند.

  1. بخش Model یا M
  2. بخش View یا V
  3. بخش Controller یا C

بخش Model وظیفه ذخیره و بازیابی اطلاعات را بر عهده دارد

بخش View کار نمایش اطلاعات به کاربر را بر عهده دارد

بخش Controller سایر وظایف را به انجام می‌رساند

این بخش‌ها با ایجاد ارتباط بین هم، می‌توانند هدف اصلی برنامه را اجرایی کنند.

مزیت استفاده از مدل MVC این است که بسیاری از تغییرات روی برنامه آسان‌تر از قبل به انجام می‌رسد. برای مثال اگر اطلاعات کاربران سیستم در یک View به صورت جدول در یک صفحه وب دیده می‌شود، به آسانی می‌توان یک View جدید ایجاد کرد که همین اطلاعات را به صورت یک فایل اکسل به کاربر تحویل دهد. ایجاد یک View جدید بدون نیاز به انجام تغییرات روی کدهای بخش Controller و Model به انجام می‌رسد.

همچنین اگر بنا باشد که اطلاعات سیستم از زمانی به جای ذخیره شدن در پایگاه MySQL در پایگاه SQL Server یا Oracle به انجام برسد، تنها بخش Model تغییر خواهد کرد و بقیه بخش‌های برنامه به شکل قبل به کار خود ادامه می‌دهند.

0

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

تشخیص اینکه چه زمانی به‌روزرسانی خودکار به انجام برسد و چه زمانی انجام نشود، بر عهده تیم توسعه‌ی وردپرس است.

همانند بخش‌های دیگر وردپرس، امکان سفارشی‌سازی این بخش نیز وجود دارد.

ممکن است بخواهید به‌روزرسانی‌های وردپرس همیشه بدون نیاز به دخالت شما به انجام برسد. البته توجه به این نکته ضروری است که به‌روزرسانی ممکن است با خطاهایی همراه باشد که در صورت رخداد این گونه خطاها، تا زمانی که متوجه شوید زمانی سپری شود و سایت شما مدتی از دسترس خارج گردد.

برای به‌روزرسانی تمامی افزونه‌ها به صورت خودکار، کافی است کد زیر را در فایل functions.php قالب خود یا یک افزونه‌ی جدید درج نمایید و آن را فعال کنید:

add_filter('auto_update_plugin', '__return_true');

همچنین برای به‌روزرسانی تمامی قالب‌های موجود به صورت خودکار این کد را می‌بایست استفاده نمایید:

add_filter('auto_update_theme', '__return_true');

وردپرس به صورت پیش‌فرض تمامی ترجمه‌های به‌روزرشده را نصب می‌کند. اگر می‌خواهید این اتفاق رخ ندهد، از این کد استفاده کنید:

add_filter('auto_update_translation', '__return_false');
0
نوشتن یک برنامه که کارهای زیادی انجام می‌دهد، به حجم بسیار زیادی از کدها نیازمند است. همانند سایر فعالیت‌های واقعی و روزمره، انجام کارهای بزرگ به صورت یکباره بسیار سخت و پیچیده است.
در عوض اگر کارهای بزرگ به مجموعه‌ای از کارهای کوچک‌تر تبدیل شوند، انجام تک تک کارهای کوچک به مراتب آسان‌تر خواهد بود.
برای مثال برای ساخت یک ساختمان، کارهای متعددی لازم است انجام شود. اگر این حجم زیاد از کارها را به قسمت‌های کوچک‌تر تقسیم کنید و هر یک را به کسی بسپاریم، یک نفر مدیر نیاز است تا ترتیب این کارها را به شکل مناسب درآورد و در نهایت یک ساختمان که نتیجه کار ده‌ها نفر مختلف است ساخته شود.
در برنامه‌نویسی، روش‌های مختلفی برای خرد کردن کارها وجود دارد. یکی از روش‌های قدیمی و متداول ایجاد توابع یا functionها است. هر تابع قطعه‌ای از کد است که یک وظیفه مشخص و کوچک را انجام می‌دهد.
برای مثال یک نرم‌افزار حسابداری نیازمند انجام محاسبات متعدد و زیادی است. یک تابع در چنین نرم‌افزاری می‌تواند وظیفه داشته باشد که بررسی کند کد کالای خاصی، چند درصد مالیات بر ارزش افزوده دارد. این تابع یک کد کالا را دریافت می‌کند و یک درصد بر‌می‌گرداند.
وظیفه‌ی محاسبه قیمت نهایی و ثبت فاکتور و کسر از موجودی و ده‌ها کار دیگر که مورد نیاز است بر عهده این تابع نیست و ده‌ها تابع دیگر با همکاری هم این کارها را انجام می‌دهند.

توابع بازگشتی

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

کاربرد توابع بازگشتی

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

ورودی‌ها و خروجی‌های توابع

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

روش‌های جدیدتر برای جایگزینی توابع

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