در برنامه نویسی اولیه سازی داده ها، برای مدیران مهم است که خرده ها بر اساس داده ها قبل از زمان برای برنامه تنظیم شوند - ویژگی ها، فایل های لازم آن داده ها و پایگاه داده، سپس.

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

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

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

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

وردپرس طیف گسترده‌ای از قلاب‌ها را ارائه می‌دهد که می‌توان آن‌ها را در افزونه‌ها و تم‌ها نشان داد.

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

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

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

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

شما می توانید آخرین روند ویرایش در وردپرس را در کدکس مشاهده کنید.

وردپرس همیشه قلاب پوسته را به ترتیب آهنگ می‌پیچد (مانند توضیحات در کدکس). همچنین مهم است که به ترتیب ظاهر شدن غلاف ها در قلاب پوست نگاهی بیندازید. بیایید نگاهی به این وضعیت بیندازیم تا تفاوت را درک کنیم.

admin_init روی وسط قلاب init تنظیم شده است

همانطور که نیاز داریم، می توانیم قلاب های وردپرس را بین سایر هوک ها قرار دهیم. برای یک درخواست معمولی، قلاب init قبل از قلاب admin_init زده می شود. بیایید سعی کنیم آن را با قرار دادن admin_init در وسط قلاب init نمایش دهیم:

Add_action("init"، "test_init"); function test_init()(admin_action("admin_init"، "test_admin_init"); ) function test_admin_init() (echo "Admin Init Inside Init"؛ )

پس از تایپ در این کد، باید رشته های بیشتری را برای کمک عملگر echo اضافه کنیم.

ما می توانیم init را در وسط قلاب admin_init ببینیم

بیایید به کد نگاه کنیم و اسکریپت را ببینیم، اگر قلاب انتساب اولیه بیشتری در قلاب وجود داشته باشد، بعداً به ترتیب است.

Add_action("admin_init", "test_admin_init"); function test_admin_init() ( add_action("init"، "test_init"); ) function test_init() (echo "Init Inside Admin Init"؛ )

در این مورد، ما هیچ vysnovka را حذف نمی کنیم - همانطور که پاک شد - تکه های قلاب init قبل از admin_init vykonuetsya هستند، اما اگر تعیین admin_init باشد غیر قابل قبول است.

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

قلاب های init و admin_init را دنبال کنید

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

ما همچنین از عملکرد قلاب‌های init و admin_init شگفت‌زده می‌شویم.

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

قلاب admin_init پس از تکمیل فرآیند ضبط توسط بخش مدیریت باز می شود. در این ترتیب، این قلاب برای تمام درخواست‌ها به سمت مدیر حساب می‌شود. Koristuvachі باید ثبت نام به منظور vikoristovuvat در منافع خود دانمارکی قلاب.

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

قلاب های Yak vicoristowati init

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

وردپرس کسانی را که خودشان مقصر هستند، اما مقصر نیستند، نشان نمی دهد. برای این، خرده فروشان می توانند بخشش های ناچیز را بپذیرند، گویی که با خانه، ساختمان های خود، منجر به کاهش بی رویه بهره وری می شوند. در این بخش، ما به شما نشان خواهیم داد که چگونه به طور موثر قلاب‌های init و admin_init را تغییر دهید.

بیایید به رایج ترین روش های انتخاب قلاب اولیه نگاهی بیندازیم:

قلاب اولیه

  • ثبت انواع پست زیبا – فروشندگان وردپرس توصیه می کنند از هوک init برای ثبت انواع پست سفارشی جدید استفاده کنید.
  • راه اندازی پیکربندی و تنظیم پلاگین - پارامترهای تنظیمات و پیکربندی افزونه برای مراقبت از پوست ضروری است و همچنین قرار دادن آنها در وسط قلاب تمرین خوبی است.
  • دسترسی به ارسال داده ها به koristuvach (از طریق $_GET و $_POST) - می توانیم انتقال داده ها را بدون تایپ تغییر دهیم، در هر صورت توصیه می شود برای تغذیه پوست از قلاب init، گارانتی ویسکوزینگ خرده های vin استفاده کنید.
  • افزودن قوانین جدید برای بازنویسی - با استفاده از قلاب init می‌توانیم قوانین جدیدی را برای بازنویسی تنظیم کنیم، اما بوی بد بعد از انداختن عملی‌تر است.
  • افزودن یا افزودن داده های اضافی - افزونه هایی برای اضافه کردن داده های اضافی زیادی برای گسترش عملکرد. اگر اتفاقاً چیزهای جدیدی اضافه کنیم یا موارد قدیمی را حذف کنیم، می توانند وضعیت را مقصر بدانند. در چنین vipadka ها، مهم است که tsі dії را در قلاب اولیه قرار دهید.
  • گرفتن دامنه متنی افزونه - وردپرس از حرکات عددی پشتیبانی می کند و به این ترتیب می توانیم فایل را جذب کنیم تا جابجایی ردیف ها را جبران کنیم. Tse را می توان با قلاب init سرقت کرد.

قلاب admin_init

  • کنترل دسترسی - بازنگری در حقوق دسترسی هسته هایی که قبل از آن به سیستم رفته اند، مهم است تا امکان دسترسی هسته به اولین مجموعه از ویژگی ها و عملکردها فراهم شود. admin_init - اولین مرحله، همانطور که در ناحیه مدیر خواهد بود، می توانیم برای کنترل دسترسی هک کنیم.
  • افزودن پارامترهای جدید – ما می توانیم یک هوک را برای اضافه کردن تنظیمات یا پارامترهای جدید به ناحیه پارامتر اصلی وردپرس تغییر دهیم.

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

Zagalni بخشش vikoristannya hukіv іnіtsіalіlіzatsії

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

بیایید به بخش هایی از عفو و همچنین راه های دور زدن آن اشاره کنیم:

  • به روز رسانی قوانین بازنویسی یک عملیات منبعی است که در فرآیند آن همه قوانین بازنویسی به روز می شوند و برای افزودن یا حذف قوانین قدیمی مجدداً مرتب می شوند. بسیاری از خرده فروشان قوانین بازنویسی را در میانه init-diy به روز می کنند. این کار باید تا جایی انجام شود که سرزنش برای بهره وری پوست ضروری نباشد. ما مقصر روش به‌روزرسانی دستی قوانین برای بازنویسی دکمه‌های اضافی، یا به‌روزرسانی قوانین برای اقدامات نادر، مانند، برای مثال، ذخیره گزینه‌های افزونه هستیم.
  • دسترسی به پایگاه داده - برای اجرای عملکردهای مختلف، دسترسی به پایگاه داده مقصر است، اما همچنین مهم است که از دسترسی نامناسب به پایگاه داده در وسط قلاب های اولیه محافظت شود، خرده های بد بو از روی قلاب حذف می شوند. پوست. برای رسیدن به راه‌حل‌های ایده‌آل، قلاب‌های پایگاه داده را به قلاب‌هایی با همان عملکرد متصل می‌کنید و از کار سخت بهره‌وری اجتناب می‌کنید.
  • بهبود روش‌های ارتقا - افزونه‌ها مسئول فعال کردن رویه‌های ارتقا برای ارتقای قابلیت‌های خود در نسخه‌های جدید هستند. با توزیع‌کنندگان ویکوریست تماس بگیرید تا قلاب‌ها را برای بررسی مجدد نسخه افزونه و پارامترهای اصلی قبل از شروع فرآیند ارتقا، مقداردهی کنند. ما می‌توانیم افراد را تشویق کنیم که افزونه را به‌جای صفحه‌ای که هنگام شستن پوست به‌طور خودکار تغییر می‌کند، روی یک صفحه شفاف به‌روزرسانی کنند.
  • انتخاب قلاب‌ها برای راه‌اندازی قلاب‌ها برای عملکرد آواز، گسترده‌ترین بخشش است، همانطور که به نظر می‌رسد توسط خرده‌فروشان متعدد انجام شده است. وردپرس دارای طیف گسترده ای از قلاب ها است که به عملکرد منحصر به فرد آن گره خورده است. همچنین مهم است که قلاب‌های کاربردی را برای دور زدن درگیری‌ها و گسترش کدهایی که در حال گسترش هستند، تغییر دهید. قلاب‌هایی مانند init و admin_init می‌توانند بر قلاب‌های خاصی پیروز شوند، بنابراین هکرهای زیادی به آن‌ها نگاه می‌کنند، جای تعجب نیست که چه تأثیر مخربی دارید.

برای جایگزینی قلاب های توصیه شده، اسکریپت های توسعه یافته را به قلاب های init و admin_init توسط خرده فروشان اعمال کنید:

  • admin_menu - می توانیم یک منوی جانبی برای تابع اضافی add_menu_page اضافه کنیم. برای ایجاد ستون های کناری در نزدیکی منوی مدیریت، توصیه می شود قلاب admin_menu را انتخاب کنید. با این حال، هک های زیادی برای برنده شدن در قلاب admin_init، و لیست های شراب بیشتری برای برنده شدن پس از قلاب admin_menu وجود دارد.
  • wp_enqueue_scripts – توصیه هایی برای نحوه اضافه کردن سبک به اسکریپت هایی که با قلاب wp_enqueue_scripts مطابقت دارند. با این حال، بسیاری از wp_enqueue_script نویسندگان از hook init برای قرار دادن اسکریپت ها و سبک ها استفاده می کنند.

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

ویسنووک

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

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

سلام به همه! مطمئناً بسیاری از koristuvachiv ها می توانند هنگام پخش آنلاین صوتی، تصویری یا زمانی که می خواهند یک انیمیشن فلش (بازی، بنر، برنامه و غیره) شروع کنند، روی صفحه نمایش مانیتور خود پیامی به نام "من به اندازه کافی دور نشدم تا افزونه را دریافت کنم" ارسال کنند. .). اگر از طرف اول وی را می خوردند، نایمویرنیش وی عفو دریافت می کرد. امروز در این دستورالعمل کوچک با شما عفو داریم" پلاگین دریافت نشد» مرورگر سریع و آسان است.

اول دوستان بیایید بفهمیم مرورگر چه نوع پلاگینی دارد. پلاگین - ce tobto dopovnennya، مانند گسترش قابلیت های مرورگر اینترنت. پلاگین برای روز امروز تعداد زیادی است، و همه بوی تعفن از صاف کردن متفاوت است. آیا مرورگر دارای پلاگین های اساسی برای نمایش صحیح منابع وب است یا خیر. به محض اینکه مرورگر در مورد افرادی که این افزونه را دریافت نکرده بودند نشان داده شد، احتمال اینکه Flash Player با مشکل مواجه شود بیشتر بود. در زیر می‌توانیم راه‌هایی را با شما بررسی کنیم که چگونه می‌توانید عفو را اصلاح کنید.

راه 1. مرورگر اینترنت قابل ارتقا

راه دانمارکی ساده ترین است و در بیشتر موارد کمک می کند. من تمام این دستکاری ها را روی لبه مرورگر محبوب Google Chrome نشان خواهم داد. اگر از مرورگر دیگری استفاده می کنید، مباهات نکنید، همه چیز مشابه است. بنابراین، برای به روز رسانی مرورگر، اجازه دهید به منو - Dovіdka - درباره مرورگر برویم.


در سمت «درباره برنامه»، می‌توانید روی دکمه «به‌روزرسانی» کلیک کنید.


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

راه دوم تاریخچه مرورگر را پاک کنید

Tsej sposіb podpomozhe در آن وضعیت، اگر چنین بخشش کمتر در منابع deyaky است. انجام همه چیز آسان است - باید کش و کوکی ها را در مرورگر پاک کنید.

حافظه پنهان - فایل‌های زمان مرورگر، که تمام اجزای وب از منابع (تصاویر، نوارهای کناری، فایل‌های ویدیویی، طراحی و غیره) را ذخیره می‌کند. مرورگر Zavdyaki Cache به سرعت طرف‌های سایت‌هایی را که قبلاً در نظر گرفته شده بودند، ضبط می‌کند، بنابراین ضبط اجزای منبع از طریق اینترنت نیست، بلکه از دیسک محلی رایانه است.

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

بنابراین، بیایید حافظه پنهان و کوکی‌ها را از مرورگر خود پاک کنیم تا بتوانید عفو کنید. به منو بروید، "تاریخچه" را انتخاب کنید.


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


اگر چنین است، مرورگر غرق شده است.

راه سوم افزونه های دانلود را فعال کنید

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

برای تگ کردن کروم، chrome://plugins را در نوار آدرس تایپ کنید
اگر می خواهید Yandex را برنده شوید، مرورگر: // plugins را در نوار آدرس تایپ کنید
اگر در حال تایپ Opera هستید، سپس opera://plugins را در نوار آدرس تایپ کنید
برای تگ کردن فایرفاکس، about:plugins را در نوار آدرس تایپ کنید


اگر مهمانی با پلاگین می بینید، مهم است تعجب کنید که آیا از افزونه Flash Player استفاده می کنید یا خیر. اگر اینطور است، توصیه می کنم آن را روشن کنید (نوع PPAPI را صدا کنید).


پس از ورود به سیستم، مرورگر را دوباره بارگیری کنید و دوباره بررسی کنید.

راه چهارم Adobe Flash Player را مجددا نصب کنید

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


با عرض پوزش، دستورالعمل کوچک من در مورد اصلاح بخشش. پلاگین دریافت نشد» به شما کمک کرد. اگر این مشکل را به روش دیگری حل کرده اید، پس می توانید در نظرات بنویسید، به کوریستوواچ های پولدار کمک خواهید کرد! Dyakuyu برای احترام و بهترین ها!

قوانین نصب افزونه CryptoPro CSP در موزیلا فایرفاکس بسته به نسخه مرورگر - 52 و بالاتر، یا قدیمی تر، متفاوت است.

نسخه موزیلا فایرفاکس زیر 52

نحوه امضای اسناد با موزیلا فایرفاکس:

  • به روز رسانی خودکار را خاموش کنید. برای چه کسی، به "منو" ⇒ "اخبار" ⇒ "اضافی" ⇒ "به روز رسانی" (کوچک 1) بروید.
مال. 1. به روز رسانی برای موزیلا فایرفاکس
  • نسخه 51.0.1 را از وب سایت رسمی موزیلا فایرفاکس نصب کنید.

برای نصب افزونه CryptoPro Browser، باید موارد زیر را داشته باشید:

  1. برنامه نصب را از وب سایت رسمی شرکت "Crypto-Pro" www.cryptopro.ru/products/cades/plugin دانلود کرده و فایل دانلودی را اجرا کنید.

2. در پایان نصب پلاگین CryptoPro Browser، دکمه "So" (Small 2-a) را فشار دهید.

مال. 2-a. نصب افزونه CryptoPro Browser

3. اتمام نصب را بررسی کنید (Mal. 2-b).

مال. 2b. نصب افزونه CryptoPro Browser

4. دکمه OK را فشار دهید و مرورگر وب را مجددا راه اندازی کنید (کوچک 2).

مال. 2 اینچ نصب افزونه CryptoPro Browser

مهم

پس از نصب CryptoProمرورگر پلاگین- که درلازم است تأیید کنید که چه چیزی در افزونه مرورگر برای کار با امضای الکترونیکی CryptoPro ECP Browser برای مرورگرها نصب شده است.

5. مرورگر را باز کنید، دکمه "Browser menu" را فشار دهید، بخش "Add-ons" را انتخاب کنید (3 کوچک).

مال. 3. منوی مرورگر

6. به تب "Plugins" بروید. برخلاف افزونه CryptoPro CAdES NPAPI Browser Plug-in، در منوی ظاهر شده، گزینه Start Enable را انتخاب کنید (طرح 4).


مال. 4. مدیریت افزونه

7. مرورگر را ریستارت کنید.

موزیلا فایرفاکس نسخه 52 و بالاتر

برای نصب افزونه CryptoPro Browser، اینجا را کلیک کنید:

  1. به www.cryptopro.ru/products/cades/plugin بروید، سپس "برنامه افزودنی مرورگر" را روشن کنید (Sk. 5).


مال. 5. وب سایت CryptoPro

2. تمبر «اجازه» (مالی 6).


مال. 6. درخواست اجازه داده شد

3. "افزودن" (Mal. 7) را فشار دهید.

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

راه حل مشکل افزونه

Yak i vyplivaє zі zmіstu عفو، به خودی خود پلاگین CAdES مانند zavantazheny، tobto. Vіn є y sistemі, prote schos zavazhє Yoga robotі. به نظر می رسد این مشکل به دلیل نسخه های قدیمی فایرفاکس تا نسخه 51 باشد (افزونه جدیدتر کار نمی کند). در این مقاله، میدانچیک تجارت الکترونیکی به عنوان لب به لب در نظر گرفته شده است و سه راه برای حل مشکل وجود دارد.

روش 1: افزونه را برای استریم سایت فعال کنید

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

روش 2: افزونه را برای همه سایت ها فعال کنید

منبع تغذیه برای ایمنی توربو چگونه است؟ کامپیوتر فقط برای کار بر روی سایت های عکس برگردان برنده می شود، می توانید افزونه CAdES را برای همه سایت ها روشن کنید. Todi vіn pracyuvatime vіdrazu poslja zavantazhennya storіnki. اگر تشخیص مربع خاکستری تیره برای فعال کردن افزونه غیرممکن است، می توانید به این مرد کمک کنید.

گزینه 3: پیوند مرورگر دیگری

به دلایل پیش بینی نشده پلاگین CAdES همچنان می تواند کار کند. یک راه دیگر برای عفو وجود دارد - برنده شدن در یک مرورگر دیگر. اکثر مرورگرها بر اساس موتور کرومیوم هستند، بوی بد شبیه به هم هستند، می توانیم به برنامه های Google Chrome نگاه کنیم.


ویسنووک

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

نوشته شده در 2016/02/03 در

Zagalni vіdomostі

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

  • onFulfilled- بپرسید که آیا قول می تواند "با موفقیت برنده شود".
  • در رد شد- بپرسید که آیا می توان قول را "با عفو" کامل کرد؟
روش جهانی برای درج یک وعده در ماه مه به این صورت است: soz.then(onFulfilled, onRejected)

مقداردهی اولیه پلاگین

برای کار با افزونه، لازم است تابع اولیه سازی PKCS#11 جزء plugin.initPKCS11 را فراخوانی کنید. این تابع، به عنوان پارامتر، تغییر در نام ماژول ها (مانند یک آرایه) را می پذیرد. شما می توانید لیست ماژول های منتقل شده را نگاه کنید. اگر ماژول ها مشخص نشده باشند، افزونه شروع به کار همه ماژول ها را فعال می کند.
در صورت لزوم، نحوه هک کردن ارائه دهندگان رمزارز هنگام کار با ماژول capi را مشخص کنید، سپس فرمت ورودی بعدی را هک کنید:

Capi:(prov1)،(mode):(prov2)،(mode)

کدام ورودی دارای:

  • prov1، prov2 - نام ارائه دهنده رمزنگاری. در این ساعت از معانی زیر استفاده می شود:
    • Crypto-Pro GOST R 34.10-2001 ارائه دهنده خدمات رمزنگاری؛
    • Crypto-Pro GOST R 34.10-2012 ارائه دهنده خدمات رمزنگاری؛
    • Crypto-Pro GOST R 34.10-2012 ارائه دهنده خدمات رمزنگاری قوی.
    • Signal-COM CPGOST Cryptographic Provider;
    • Signal-COM GOST R 34.10-2012 (256) Cryptographic Provider;
    • Signal-COM GOST R 34.10-2012 (512) Cryptographic Provider;
    • ارائه دهنده خدمات رمزنگاری Infotecs.
  • حالت - حالت نمایش هنگام وارد کردن کد پین. می توانید این معنی را در نظر بگیرید:
  • 0 - حالت قفل، انتقال توسط یک ارائه دهنده رمزارز.
  • 1 - نمایش نمای بومی ارائه دهنده رمزنگاری.
    توجه: ساعات کار با Crypto-Pro در لینوکس، نسخه بومی ارائه‌دهنده رمزنگاری در دسترس نیست.
  • 2 – نمایش پنجره در رابط افزونه.
    توجه: ساعت Signal-COM در رابط افزونه موجود نیست.

برای حذف کلیدها از پوشه سیستم ویندوز، لطفا ارائه دهنده را مشخص کنید و حالت Yak My است.
کلید اولیه سازی همه ماژول ها:

Plugin.initPKCS11(["ISBC ESMART"، "Aladdin R.D. Unified JaCarta"، "Rutoken", "SafeNet", "capi:Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider,0:Crypto-Pro GOST R 3421 Cryptographic Service" ارائه‌دهنده، 0:Crypto-Pro GOST R 34.10-2012 ارائه‌دهنده خدمات رمزنگاری قوی، 0: ارائه‌دهنده رمزنگاری Signal-COM CPGOST، 0:Signal-COM GOST R 34.10-2012 (256) ارائه‌دهنده رمزنگاری، 0 (5121-0 R). ارائه دهنده رمزنگاری، 0: ارائه دهنده خدمات رمزنگاری Infotecs، 0: من"])

نمونه ای از راه اندازی یک ماژول برای حذف کلیدها از پوشه سیستم ویندوز:

Plugin.initPKCS11(["capi: من"])

پس از مقداردهی اولیه موفقیت آمیز، تابع شیء را می چرخاند (در اینجا و بیشتر - برای مکانیسم وعده اضافی) که ماژول ها و getCertsForSign کار می کنند.

بازبینی انتقال ماژول هایی که تبدیل خواهم شد

برای بررسی جابجایی ماژول ها و آنها، باید تابع ماژول ها را فراخوانی کنم.
نمونه درخواست:

Pkcs11.modules.then(onFulfilled, onRejected);

نمونه ای از توابع خاص (جزئیات برای وضوح خواندن آورده شده است):

[ ( "فعال کردن": درست، "نام": "علاءالدین آر. :بارگذاری ماژول p11 انجام نشد، "نام": "ISBC ESMART" ] ]

بررسی لیست گواهینامه ها

برای بررسی لیست گواهی های شناسایی شده، باید روی تابع getCertsForSign کلیک کنید. به عنوان پارامتر فراخوانی تابع، لازم است تعداد دفعات برنده شدن در حالت موازی مقداردهی اولیه ماژول های PKCS#11 را مشخص کنید:

  • درست است، واقعی- بازیابی موازی به ماژول ها (حالت توصیه)؛
  • نادرست- آخرین مرحله به ماژول ها.
ترجمه گواهینامه ها در یک آرایه (آرایه جاوا اسکریپت)، عناصر چنین موضوعی از گواهی ها. توابع full_info، cms_sign_on_it و start_signing را می توان در شیء گواهی استفاده کرد.

بررسی اطلاعات مربوط به یک گواهی خاص

برای بررسی اطلاعات مربوط به یک گواهی خاص، لازم است با مرجع full_info تماس بگیرید، که اطلاعات مربوط به گواهی را از شی json تبدیل می کند. Він شامل پارامترهای زیر است:

  • sn- شماره سریال گواهی؛
  • موضوع- اطلاعات مربوط به موضوعی که گواهی امضای الکترونیکی به او داده شده است. پارامتر فرمت json را روشن می کند: مقدار، پارامتر de - نام شناسه شی نوع (OID). همه شناسه‌های شی استاندارد را می‌توان در سطح جهانی پذیرفت، به عنوان مثال، CN (نام مشترک).
  • صادر کننده- اطلاعات مربوط به ظاهر گواهی کلید امضای الکترونیکی. پارامتر فرمت json را روشن می کند: مقدار، پارامتر de - نام شناسه شی نوع (OID). همه شناسه های استاندارد شیء دارای یک نام پذیرفته شده جهانی هستند.
  • قبل از این نه– ساعت روی لپه گواهی (نوع داده در قالب ASN1_TIME است)؛
  • نه_بعد- ساعت انقضای گواهی (نوع داده در قالب ASN1_TIME است)؛
  • key_usage- اطلاعات مربوط به تشخیص کلید، که در جلوی آرایه می چرخد.
ساعت شروع / پایان گواهی در قالب ASN1_TIME را می توان با استفاده از تابع جدید جدید (ASN1_TIME) به قالب استاندارد ترجمه کرد.

بازنگری داده های مربوط به کلید امضای الکترونیکی

برای بررسی اطلاعات مربوط به کلید خاص امضای الکترونیکی گواهی، لازم است از روش token_info فراخوانی شود. این روش json-object را از این داده ها تبدیل می کند:

  • برچسب- به نام محفظه کلید برای امضای الکترونیکی؛
  • شناسه سازنده- شناسه virobnik به منظور امضای الکترونیکی؛
  • مدل- مدل برای امضای الکترونیکی؛
  • شماره سریال- شماره سریال برای امضای الکترونیکی.
برای کلیدهایی که از طریق ماژول capi کار می کنند، داده هایی که می چرخند می توانند متفاوت به نظر برسند. ویژگی model باید همیشه مقدار "capi" داشته باشد، ویژگی serialNumber مقدار روز را داشته باشد، شناسه سازنده نام ارائه‌دهنده رمزنگاری و برچسب نام کانتینر را داشته باشد.

عملیات امضا برای کمک گواهی انتخاب شده

حالت امضای ساده

برای امضای ردیفی برای کمک گواهی انتخاب شده، لازم است تابع cms_sign_on_it را فراخوانی کنید تا پارامترهای ورودی زیر را بپذیرید:

  • ردیف برای امضا؛
  • نوع امضا - chi є امضای دریافت شده (لازم است مقدار درست را منتقل کنید) chi تشخیص داده می شود (نادرست).
به عنوان تأیید، تابع ردیف را با امضا در قالب CAdES-BES / PKCS#7 پیوست/ جدا شده می چرخاند.
اعمال فراخوانی به یک تابع به طوری که بتوان آن را روی شی گواهی فراخوانی کرد: cms_sign_on_it("1234", 3, true).then(function(cms)(console.log(cms)));

پسوند حالت امضا

حالت افزونه اجازه می دهد:

  • خراج واجب بزرگ، به عنوان مثال فایل ها را امضا کنید.
  • یک کپی از فایل ها را بدون ثبت نام مجدد روی کد پین امضا کنید.

برای امضای داده‌ها برای یک گواهی انتخاب‌شده اضافی، ابتدا باید شی امضاکننده را برای تابع start_signing کمکی روی شی گواهی، مقداردهی اولیه کنید. پارامترهای تابع:

  • نوع امضا - chi є امضای دریافت شده (لازم است مقدار واقعی را منتقل کنید) chi وارد شده (نادرست)؛
  • تعداد نمونه های وارد شده برای کد پین (به عنوان مثال، مقدار "1" به این معنی است که koristuvach فقط می تواند یک نمونه داشته باشد، پس از آن تابع یک عفو می کند).

روش‌ها روی شی امضاکننده در دسترس خواهند بود:

  • add_data_in_hex(hexDataString) - داده های ورودی را از یک ردیف هگز می پذیرد.
  • add_data_in_base64(base64DataString) - داده های ورودی را از یک ردیف با ظاهر base64 می پذیرد.
  • add_data_in_string(stringData) - داده های ورودی را از یک ردیف utf-8 می پذیرد.
  • free() - مقادیر true/false را تبدیل می کند، که به شما امکان می دهد بررسی کنید که آیا گواهی برای امضا آماده است یا خیر. اگر یک کپی از تکرار امضا در گواهی های مختلف نشان داده شده باشد، باید برای vipadku برنده شوید. به عبارت دیگر، برای امضای آخرین امضای تعدادی از گواهی ها، قبل از امضا باید روش را فراخوانی و آشتی داد که درست می شود.
  • finish() - امضا را نهایی می کند و آن را در قالب CAdES-BES/PKCS#7 می چرخاند.
به عنوان تأیید، تابع ردیف را با امضا در قالب CAdES-BES / PKCS#7 پیوست/ جدا شده می چرخاند.

امضای ردیف

لبه فرمان، که به شما امکان می دهد یک ردیف را امضا کنید:

Signer.add_data_in_string("1234").then(function(res)( return signer.finish();)).then(function(cms)(console.log(cms))));

این تیم "1234" یک ردیف دارد که باید امضا شود.

نصب تعدادی امضا

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

برای امضای گواهی دیگر، باید شی امضاکننده را پاک کنید. برای اکثر مرورگرها، این شیء به طور خودکار پاک می شود اگر پنجره توسط scope لغو شود. با این حال، در اینترنت اکسپلورر ممکن است شرایطی وجود داشته باشد، اگر امضاکننده پاک نشود، که منجر به عفو شود. توصیه می‌شود که signer.free() را پاک کنید تا به طور منحصربه‌فرد عفو کنید. این عملیات را می توان در همه مرورگرها برای یکسان سازی کد انجام داد. نمونه ای از امضای یک گواهی برای پاک کردن شی امضاکننده:

علامت تابع (گواهی، اطلاعات) ( تابع successCms(امضا) ( هشدار(امضا)؛ ) cert.start_signing(false, 3) .then(function(signer) ( signer.add_data_in_base64("MTIzNDU2") .then(function) ( var data = signer.finish(); var free = signer.free(); data return; ), e) .then(successCms, e); ), e);

امضای پرونده تعهد بزرگ

تابع readFileByChunk(file, cbToRead, cbToFinish) ( var fileSize = file.size؛ var chunkSize = 1024 * 1024؛ // bytes var offset = 0؛ var chunkReaderBlock = null؛ var self = this؛ var if (evt.target. error == null) (cbToRead(evt.target.result، offset، fileSize); offset += evt.target.result.byteLength؛ ) else (consol.error("خطای خواندن:" + evt .target.error); showError("شکست در خواندن فایل: " + evt.target.error); return; ) if (offset >= fileSize) , file); ( var blob = _file.webkitSlice(_offset, _chunkSize + _offset); ) در غیر این صورت اگر (_file.mozSlice) ( var blob = _file.mozSlice(_offset, _chunkSize + _offset); ) r.onload readAsArrayBuffer(blob) / خواندن اولین بلوک chunkReaderBlock (offset, chunkSize, file); )

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