ხელმოწერის მოდულის ინიციალიზაცია არ არის დაინსტალირებული. CryptoPro CSP მოდულის ინსტალაცია Mozilla Firefox ბრაუზერში. გზა. აპლიკაციის დანამატების ჩართვა

გამოქვეყნდა 02/03/2016 ქ

Zagalnye Vidomosti

მოდულის პროგრამული ინტერფეისი გადასცემს მოწოდებას ასინქრონულ ოპერაციებზე, რომლებიც განხორციელებულია დაპირებული ობიექტების ქვეშ. თქვენ შეგიძლიათ წაიკითხოთ მოხსენება Vicoristan-ის შესახებ მოდულის სპეციფიკაციის განხორციელებაში. დაპირებებზე აუცილებელია ორი ტიპის გადამწყვეტის დაყენება:

  • onშესრულებულია– იკითხეთ, შეიძლება თუ არა დაპირების წარმატებით შესრულება;
  • უარყოფილია– ჰკითხეთ, შეიძლება თუ არა დაპირება „მოწყალებით დასრულდეს“.
დაპირებების დაყენების უნივერსალური მეთოდი ასე გამოიყურება: premt.then(onFulfilled, onRejected)

მოდულის ინიციალიზაცია

დანამატთან მუშაობისთვის საჭიროა გამოიყენოთ plugin.initPKCS11 კომპონენტის PKCS#11 ინიციალიზაციის ფუნქცია. ეს ფუნქცია, როგორც პარამეტრები, იღებს მოდულების სახელებს (მაივის სახით). გადაცემის მოდულების არჩევანი შეიძლება გადაიხედოს. თუ მოდულები არ არის მითითებული, დანამატი დაიწყებს ყველა მოდულს.
თუ თქვენ უნდა მიუთითოთ რომელი კრიპტო პროვაიდერები გამოიყენებენ capi მოდულს capi მოდულის გამოყენებისას, გამოიყენეთ შემდეგი ჩანაწერის ფორმატი:

კაპი:(prov1),(რეჟიმი):(prov2),(რეჟიმი)

ვისი ჩანაწერები:

  • 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 კრიპტოგრაფიული პროვაიდერი;
    • Signal-COM GOST R 34.10-2012 (256) კრიპტოგრაფიული პროვაიდერი;
    • Signal-COM GOST R 34.10-2012 (512) კრიპტოგრაფიული პროვაიდერი;
    • Infotecs კრიპტოგრაფიული სერვისის პროვაიდერი.
  • რეჟიმი - PIN კოდის შეყვანის ფანჯრის ჩვენების რეჟიმი. შეგიძლიათ მიიღოთ შემდეგი მნიშვნელობები:
  • 0 – კრიპტოპროვაიდერის მიერ გადარიცხვებისა და გადარიცხვების რეჟიმი;
  • 1 - კრიპტო პროვაიდერის მშობლიური ფანჯრის ჩვენება.
    შენიშვნა: Linux-ზე Crypto-Pro-სთან მუშაობისას, კრიპტოპროვაიდერის მშობლიური ფანჯარა მიუწვდომელია.
  • 2 – ფანჯრის ჩვენება დანამატის ინტერფეისში.
    შენიშვნა: როდესაც Signal-COM არის დაინსტალირებული, მოდულის ინტერფეისის ჩვენების ფანჯარა მიუწვდომელია.

Windows სისტემის საქაღალდიდან გასაღებების მისაღებად, მიჰყევით თქვენი პროვაიდერის სახელს და რეჟიმი არის ჩემი.
ყველა მოდულის დაწყების მაგალითი:

Plugin.initPKCS11(["ISBC ESMART", "Aladdin R.D. Unified JaCarta", "Rutoken", "SafeNet", "capi:Crypto-Pro GOST R 34.10-2001 კრიპტოგრაფიული სერვისის პროვაიდერი,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 (2-1234). კრიპტოგრაფიული პროვაიდერი,0:Infotecs კრიპტოგრაფიული სერვისის პროვაიდერი,0: ,Ჩემი"])

Windows სისტემის საქაღალდიდან გასაღებების მოსაპოვებლად მოდულის დაწყების მაგალითი:

Plugin.initPKCS11(["capi: ,Ჩემი"])

წარმატებული ინიციალიზაციის შემდეგ, ფუნქცია აბრუნებს ობიექტს (შემდგომში დამატებითი დაპირების მექანიზმის გამოყენებით) ფუნქციების მოდულებსა და getCertsForSign-ზე.

მოდულების ნაკადის მიმოხილვა და მათი გარეგნობა

მოდულების და მათი გადაცემის სანახავად, თქვენ უნდა დააჭიროთ მოდულების ფუნქციას.
მე ვიკითხავ მაგალითს:

Pkcs11.modules.then(onFulfilled, on Rejected);

სხვადასხვა ფუნქციების მაგალითი (დაბეჭდილი კითხვის გასამარტივებლად):

[ ( "enable": true, "name": "Aladdin R.D. Unified JaCarta" ), ( "enable": true, "name": "Rutoken ECP" ), ( "enable": false, "error": "100 :ვერ ჩაიტვირთა p11 მოდული", "სახელი": "ISBC ESMART" ] ]

სერთიფიკატების სიის განხილვა

იდენტიფიცირებული სერთიფიკატების სიის სანახავად, თქვენ უნდა გამოიძახოთ getCertsForSign ფუნქცია. აუცილებელია ზარის ფუნქციის პარამეტრის მითითება, რათა გამოვიყენოთ ინიციალიზებული PKCS#11 მოდულების ტესტირების პარალელური რეჟიმი:

  • მართალია– მოდულების პარალელური განვითარება (რეკომენდაციის რეჟიმი);
  • ყალბი- თანმიმდევრული მასშტაბირება მოდულებამდე.
სერთიფიკატების გადატანა მასივში (JavaScript Array), თითოეული სერტიფიკატის ობიექტის ელემენტები. სერტიფიკატის ობიექტზე შეგიძლიათ აირჩიოთ ფუნქციები full_info, cms_sign_on_it და start_signing.

კონკრეტული სერტიფიკატის შესახებ მონაცემების განხილვა

კონკრეტული სერტიფიკატის შესახებ ინფორმაციის სანახავად, თქვენ უნდა დააჭიროთ full_info, რომელიც აჩვენებს ინფორმაციას სერთიფიკატის შესახებ json ობიექტის ხედში. იგი მოიცავს შემდეგ პარამეტრებს:

  • snსერიული ნომერისერტიფიკატი;
  • საგანი– მონაცემები სუბიექტის შესახებ, რომელმაც მიიღო ეს ელექტრონული ხელმოწერის სერტიფიკატი. ის გამოჩნდება json ფორმატში ფორმატში: მნიშვნელობები და პარამეტრი არის ავთენტური ობიექტის იდენტიფიკატორის სახელი (OID). ყველა სტანდარტული ობიექტის იდენტიფიკატორი მოცემულია სტანდარტული აღნიშვნებით, მაგალითად, CN (საერთო სახელი).
  • ემიტენტი– ინფორმაცია ელექტრონული ხელმოწერის გასაღების სერტიფიკატის გაცემის შესახებ. ის გამოჩნდება json ფორმატში ფორმატში: მნიშვნელობები და პარამეტრი არის ავთენტური ობიექტის იდენტიფიკატორის სახელი (OID). ყველა სტანდარტული ობიექტის იდენტიფიკატორს ენიჭება სტანდარტული მნიშვნელობა;
  • არა_ადრე– სერტიფიკატის საათი (მონაცემთა ტიპი – მწკრივი ASN1_TIME ფორმატში);
  • არა_შემდეგ– სერტიფიკატის შევსების საათი (მონაცემთა ტიპი – რიგი ASN1_TIME ფორმატში);
  • გასაღები_გამოყენება– ინფორმაცია გასაღების ამოცნობის შესახებ, რომელიც გამოჩნდება მასივში.
სერტიფიკატის დაწყების/დასრულების საათი ASN1_TIME ფორმატში შეიძლება გარდაიქმნას სტანდარტულ ფორმატში დამატებითი ინფორმაციის გამოყენებით ფუნქციონირებს ახალითარიღი (ASN1_TIME) .

ელექტრონული ხელმოწერის გასაღების შესახებ მონაცემების განხილვა

ელექტრონული ხელმოწერის სერტიფიკატის კონკრეტული გასაღების შესახებ ინფორმაციის სანახავად, თქვენ უნდა გამოიძახოთ token_info მეთოდი. მეთოდი აბრუნებს json ობიექტს შემდეგი მონაცემებით:

  • ეტიკეტი– გასაღების კონტეინერის დასახელება ელექტრონული ხელმოწერისთვის;
  • მწარმოებლის ID– ელექტრონული ხელმოწერის გამომცემლის იდენტიფიკატორი;
  • მოდელი– მოდელი ელექტრონული ხელმოწერის მიზნით;
  • სერიული ნომერი- ინდივიდუალური ელექტრონული ხელმოწერის სერიული ნომერი.
გასაღებებისთვის, რომლებიც მუშავდება capi-მოდულის მეშვეობით, შებრუნებულ მონაცემებს განსხვავებული გარეგნობა აქვს. მოდელის ატრიბუტი ყოველთვის შეიცავს მნიშვნელობას „capi“, ატრიბუტი serialNumber ყოველთვის მიუთითებს კრიპტოპროვაიდერის სახელს, ხოლო ლეიბლი მიუთითებს კონტეინერის სახელს.

ხელმოწერის ოპერაცია შერჩეული სერტიფიკატის გამოყენებით

მარტივი გამოწერის რეჟიმი

არჩეული სერთიფიკატის გამოყენებით მწკრივის გასაფორმებლად, უნდა გამოიძახოთ cms_sign_on_it ფუნქცია, რომელიც იღებს შემდეგ შეყვანის პარამეტრებს:

  • ხელმოწერის რიგი;
  • ხელმოწერის ტიპი - არის თუ არა ხელმოწერა მიღებული (აუცილებელია მნიშვნელობის გადაცემა true) თუ მიღებული (false).
როგორც მტკიცებულება, ფუნქცია ატრიალებს რიგს ხელმოწერით CAdES-BES / PKCS#7 მიმაგრებულ/გამოყოფილ ფორმატში.
დაწკაპუნების ფუნქციის მაგალითი, რომელსაც შეუძლია დააწკაპუნოს სერტიფიკატის ობიექტზე: cms_sign_on_it("1234", 3, true).then(function(cms)(console.log(cms)));

გაფართოებების გამოწერის რეჟიმი

გაფართოების რეჟიმი საშუალებას იძლევა:

  • მოაწერეთ ხელი დიდი ჩართულობის ხარკებს, მაგალითად ფაილებს;
  • მოაწერეთ რამდენიმე ფაილი PIN კოდის ხელახლა შეყვანის გარეშე.

დამატებითი შერჩეული სერთიფიკატის მონაცემების ხელმოწერისთვის, საჭიროა ჯერ ხელმომწერის ობიექტის ინიციალიზაცია სერტიფიკატის ობიექტზე დამატებითი start_signing ფუნქციის გამოყენებით. ფუნქციის პარამეტრები:

  • ხელმოწერის ტიპი - მიღებულია თუ არა ხელმოწერა (აუცილებელია მნიშვნელობის გადაცემა true) თუ მიღებული (false);
  • PIN კოდის შეყვანის ტესტების რაოდენობა (მაგალითად, მნიშვნელობა "1" ნიშნავს, რომ მომხმარებელს სჭირდება მხოლოდ ერთი ტესტი, რის შემდეგაც ფუნქცია აბრუნებს გადატვირთვას).

შემდეგი მეთოდები ხელმისაწვდომი იქნება ხელმომწერ ობიექტზე:

  • add_data_in_hex(hexDataString) - იღებს მონაცემებს თექვსმეტობითი მწკრივიდან შეყვანად;
  • add_data_in_base64(base64DataString) - იღებს მონაცემებს base64 სტრიქონიდან შეყვანად;
  • add_data_in_string(stringData) - იღებს მონაცემებს შეყვანად utf-8 მწკრივის სახით;
  • free() - აბრუნებს მნიშვნელობებს true/false, რაც საშუალებას გაძლევთ შეამოწმოთ, რომ სერთიფიკატი მზადაა ხელმოწერამდე. თუ განმეორებითი ხელმოწერა გამოიყენება სხვადასხვა სერთიფიკატებზე, აუცილებელია შემდეგი ოფციის გამოყენება. სხვა სიტყვებით რომ ვთქვათ, თუ რამდენიმე სერტიფიკატზე არის თანმიმდევრული ხელმოწერა, ხელმოწერამდე აუცილებელია ამ მეთოდის გამოძახება და შემდეგ მისი გადაქცევა true-ზე;
  • 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" - თანმიმდევრობა, რომელიც უნდა იყოს ხელმოწერილი.

მრავალჯერადი ხელმოწერის დაყენება

ხელმოწერის დასრულების შემდეგ, ხელმომწერი ობიექტი ბრუნდება შაბათ-კვირის ბანაკი. სესიის ფარგლებში, შეგიძლიათ ხელახლა დარეგისტრირდეთ სხვა მონაცემების, მაგალითად, ახალი ფაილის ხელმოწერისთვის. თქვენ აღარ მოგეთხოვებათ თქვენი PIN კოდი.

სხვა სერტიფიკატზე ხელმოწერისთვის, თქვენ უნდა გაასუფთაოთ ხელმომწერის ობიექტი. ბრაუზერების უმეტესობაში, ეს ობიექტი ავტომატურად იშლება, როდესაც ის კარგავს მის ფარგლებს. თუმცა, Internet Explorerშესაძლო სიტუაციები, თუ ხელმომწერის გაწმენდა შეუძლებელია, უნდა განხორციელდეს გარეცხვის წინ. უნიკალურობისთვის რეკომენდებულია signer.free() . ეს ოპერაცია შეიძლება განხორციელდეს ყველა ბრაუზერში კოდის გაერთიანებისთვის. სერტიფიკატის ხელმოწერის მაგალითი ხელმომწერის ობიექტის გასუფთავებით:

ფუნქციის ნიშანი(cert, info) ( ფუნქცია successCms(ხელმოწერა) ( alert(signature); ) cert.start_signing(false, 3) .then(function(signer) ( signer.add_data_in_base64("MTIzNDU2") .then(function) ( var data = signer.finish(); var free = signer.free(); მონაცემების დაბრუნება; ), 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. შეცდომა == null) ( cbToRead(evt.target.result, offset, fileSize); offset += evt.target.result.byteLength; ) else ( console.error("Read error: " + evt .target.error); showError("File read target: " + evt.target.error); return; ) if (offset >= fileSize) , file); ) chunkReaderBlock = ფუნქცია (_offset, _chunkSize, _file) ( var r = new FileReader(); if (_file.slice) ( var blob = _file.slice (_offset, _chunkSize + _offset); ) სხვა თუ (_ .webkitSlice) ( var blob = _file.webkitSlice(_offset, _chunkSize + _offset); ) სხვა შემთხვევაში, თუ (_file.mozSlice) ( var blob = _file.mozSlice(_offset, _chunkSize + _offset); ) r.onload readAsArrayBuffer(blo b);) / დაიწყეთ კითხვა პირველიდაბლოკოს chunkReaderBlock (offset, chunkSize, file); )

თუ გახსოვთ, რომ გამოწერის ფრაგმენტები შედგენილია ლოკალურად, მაშინ არჩეული მონაცემთა ფაილის და ხელმოწერის სერვერზე გადასატანად, საჭიროა იგივე ლოგიკის დანერგვა ვებ გვერდზე.

დანამატის დაყენების წესები CryptoPro CSPMozilla Firefoxისინი განსხვავდება ბრაუზერის ვერსიის მიხედვით - 52 ან უფრო მაღალი ან უფრო ძველი.

Mozilla Firefox 52-ზე დაბალი ვერსიები

დოკუმენტების გასაფორმებლად Mozilla Firefox-ში:

ბრინჯი. 1. დაატრიალეთ და განაახლეთ Mozilla Firefox
  • დააინსტალირეთ ვერსია 51.0.1 ოფიციალური Mozilla Firefox ვებსაიტიდან.

CryptoPro Browser plug-in-ის დასაყენებლად, თქვენ უნდა შეხვიდეთ:

  1. ჩამოტვირთეთ ინსტალაციის პროგრამა Crypto-Pro კომპანიის ოფიციალური ვებგვერდიდან www.cryptopro.ru/products/cades/plugin და გაუშვით შედგენილი ფაილი.

2. CryptoPro Browser plug-in-ის ინსტალაციის ფანჯარაში დააწკაპუნეთ ღილაკზე „ასე“ (მცირე 2-a).

ბრინჯი. 2-ა. CryptoPro Browser დანამატის ინსტალაცია

3. შეამოწმეთ ინსტალაციის დასრულება (Mal. 2-b).

ბრინჯი. 2-ბ. CryptoPro Browser დანამატის ინსტალაცია

4. დააწკაპუნეთ ღილაკზე „Ok“ და გადატვირთეთ ვებ ბრაუზერი (Small 2).

ბრინჯი. 2-ინ. CryptoPro Browser დანამატის ინსტალაცია

Მნიშვნელოვანი

CryptoPro-ს დაყენების შემდეგბრაუზერი დანამატი- inთქვენ უნდა შეამოწმოთ, აქვს თუ არა თქვენს ბრაუზერს დაინსტალირებული დანამატები სამუშაოდ ელექტრონული ხელმოწერა CryptoPro EDS ბრაუზერიდანამატი ბრაუზერებისთვის.

5. გახსენით ბრაუზერი, დააჭირეთ ღილაკს “Browser Menu”, აირჩიეთ “Add-ons” განყოფილება (Small 3).

ბრინჯი. 3. ბრაუზერის მენიუ

6. გადადით "Plugins" ჩანართზე. დანამატის „CryptoPro CAdES NPAPI Browser Plug-in“-ის საპირისპიროდ, მენიუდან, რომელიც გამოჩნდება, აირჩიეთ ვარიანტი „პირველი ჩართვა“ (მცირე 4).


ბრინჯი. 4. დამატებითი ფუნქციების მართვა

7. გადატვირთეთ ბრაუზერი.

Mozilla Firefox ვერსია 52 და უფრო მაღალი

CryptoPro Browser plug-in-ის დასაყენებლად გადადით:

  1. გადადით www.cryptopro.ru/products/cades/plugin-ზე, შემდეგ აირჩიეთ „ბრაუზერის გაფართოება“ (Mal. 5).


ბრინჯი. 5. CryptoPro ვებსაიტი

2. დააჭირეთ "Allow" (Mal. 6).


ბრინჯი. 6. დაუშვა მოთხოვნა

3. დააჭირეთ „დამატებას“ (Mal. 7).

ზოგიერთ საიტზე შეგიძლიათ მიიღოთ ინფორმაცია მარჯვნივ სერტიფიკატებით და ელექტრონული გასაღებები, და თავიდანვე აუცილებელია ვირიშუვათ სხვადასხვა პრობლემებიისე რომ ყველაფერი მოთხოვნილი იყოს. ამ სტატიაში მოცემულია ინფორმაცია CAdES მოდულის გაწმენდის შესახებ, თუ არის მოთხოვნები და ობიექტები არ არის შექმნილი.

მოდულის მთავარი პრობლემა

როგორც მოწყალების ადგილიდან მოდის, CAdES მოდული თავისთავად მიმზიდველია. ეს არის სისტემაში, რომელიც ახლა პატივს სცემს თქვენს რობოტს. პრობლემა ჩნდება Firefox-ის ძველ ვერსიებში 51 ვერსიამდე (ახალი დანამატები უბრალოდ არ მუშაობს). ეს სტატია ელექტრონულად აღებულ კონდახს ჰგავს სავაჭრო maidanchikდა პრობლემის გადაჭრის სამი გზა არსებობს.

მეთოდი 1: ჩართეთ დანამატი ნაკადის საიტისთვის

ნაკადის საიტებისთვის მოდულის განახლება გამართლებულია უსაფრთხოების სტანდარტებით, თუ ბრაუზერი გამოიყენება სპეციალური მიზნებისთვის და საკუთარი დაცვისთვის. სხვადასხვა მხარეები. ასევე, თუ თქვენ გჭირდებათ ოფისში შესვლა ელექტრონული კლავიშებით არაერთხელ.

მეთოდი 2: გამორთეთ დანამატი ყველა საიტისთვის

სურსათის უვნებლობა კიდევ უფრო მშფოთვარეა, რადგან... კომპიუტერი ჩართულია რამდენიმე საიტზე მუშაობისთვის, შეგიძლიათ დააინსტალიროთ CAdES მოდული ყველა საიტისთვის. ეს უნდა გაკეთდეს გვერდის დათვალიერებისთანავე. თქვენ შეგიძლიათ დაეხმაროთ ამ პრობლემას, თუ ვერ პოულობთ მუქი ნაცრისფერ კვადრატს მოდულის გასააქტიურებლად.

მეთოდი 3: სხვა ბრაუზერის გამოყენება

ნებისმიერი გაურკვეველი მიზეზის გამო, CAdES მოდული კვლავ შეიძლება გამოყენებულ იქნას. შეცდომის მიღების კიდევ ერთი გზაა სხვა ბრაუზერის გამოყენება. ბრაუზერების უმეტესობა დაფუძნებულია Chromium ძრავზე, ისინი მსგავსია, მოდით შევხედოთ მაგალითს გუგლ ქრომი.


ვისნოვოკი

როგორც ჩანს, პრობლემის მოგვარების რამდენიმე გზა არსებობს არასწორი სამუშაოჩართვა შეერთება. თქვენი გარემოდან გამომდინარე, შეგიძლიათ აირჩიოთ ის, რაც ყველაზე მეტად მოგწონთ.

) განყოფილებაში "პროდუქტები" -> "CryptoPro EDS Browser plug-in"

გადმოწერილი ფაილის გაშვებისას, სისტემა მოგთხოვთ, რომ სისტემის ადმინისტრატორს მიაკუთვნოთ უფლებები. ინსტალაცია ადმინისტრატორის უფლებების გარეშე შეუძლებელია.

ინსტალაციის შემდეგ, თქვენ უნდა გადატვირთოთ თქვენი ბრაუზერი! ზოგჯერ (თუ იყენებთ Chrome-ს), შეიძლება დაგჭირდეთ სისტემის გადატვირთვა, რადგან... ყველა ფანჯრის დახურვით, Chrome აღარასოდეს წაშლის ბრაუზერს RAM-დან.

დამატებითი კონფიგურაცია FireFox ვერსიისთვის 52.0 და უფრო ახალი

არ დაგავიწყდეთ მოდულის დაყენება

52-ე ვერსიით დაწყებული FireFox მოდულის გამოსაყენებლად, თქვენ უნდა დააინსტალიროთ მოდულის უახლესი ვერსია (არაუმეტეს 2.0.12888) და სპეციალური გაფართოება FireFox-ისთვის.

გაფართოების ინსტალაციისთვის გადადით თქვენს FireFox-ის ინსტრუქციებზე. გადასვლის შემდეგ, მოგეთხოვებათ დააინსტალიროთ გაფართოება FireFox-ისთვის - თქვენ უნდა დაადასტუროთ ინსტალაცია ინსტალაციის დაწკაპუნებით.

დამატებითი კონფიგურაცია FireFox ვერსიებისთვის 52.0-მდე, FireFox ESR (შენიშვნა: Attraction plugin, წინააღმდეგ შემთხვევაში ობიექტები არ შეიქმნება)

ინსტალაციის შემდეგ, გაშვება ნებადართულია მხოლოდ მომხმარებლის მიერ დადასტურების შემდეგ. სუპერბუდების გაშვების დაშვება შესაძლებელია მხოლოდ ნაკადის საიტისთვის ან ისევ ყველა საიტისთვის

ვარიანტი 1: vikoristannya nadbudovy tilki-ზე ნებართვის დაყენება სტრიმინგის საიტისთვის (https://www.site)

თუ არის შეწყალება: მიზიდულობის მოდული, მაგრამ ობიექტები არ იქმნებადაამატეთ მნიშვნელობა მისამართის მწკრივს - გამოჩნდება ნადბუდოვის ხატი:

დააწკაპუნეთ ამ ხატულაზე - მოგეთხოვებათ გაუშვათ nabudova და გახსოვდეთ, რომ შემდეგ ჯერზე გაუშვით nabudova თქვენი საიტისთვის.

ვარიანტი 2: vikoristannya nabudova-ს ნებართვის კორექტირება ყველა საიტისთვის

გახსენით ინსტალაციის გვერდი FireFox დანამატები

დანამატების სიაში იპოვეთ CryptoPro CAdES NPAPI Browser Plug-in და შეცვალეთ მისი გაშვების რეჟიმი „პირველად ჩართეთ“

დამატებითი კორექტირებაოპერისთვის

გახსენით გვერდი ინსტალაციის საძიებო პარამეტრით:

შეიყვანეთ საძიებო სიტყვა "CryptoPro" - ნაპოვნია გაფართოება "CryptoPro Extension for CAdES Browser Plug-in". დააწკაპუნეთ "დამატება ოპერაში" ინსტალაციისთვის.

დამატებითი კორექტირება ამისთვის Yandex ბრაუზერი

Yandex ბრაუზერისთვის, თქვენ უნდა გამოხვიდეთ ოპერაზე გამოსვლის მსგავსი პროცედურისგან.

დამატებითი პარამეტრები Google Chrome-ისთვის: ცალკე შენობა დაინსტალირებული დანამატი

თუ დანამატი წარმატებით არის დაინსტალირებული, Chrome-ის გაშვებისას დაინახავთ დამადასტურებელ შეტყობინებას, რომელიც მოგთხოვთ დანამატის გაშვებას

ვისი დიალოგიც უნდა დაუშვას გაფართოების

მნიშვნელოვანია მონაცემთა დაპროგრამებული ინიციალიზაცია, ამიტომ ჩვენ ვადგენთ პროგრამის პირველ ნაბიჯებს - ატრიბუტები, საჭირო ფაილები და მონაცემები, მონაცემთა ბაზასთან დაკავშირება და ა.შ.

WordPress-ს აქვს ინიციალიზაციის ფიქსირებული პროცედურა. გვერდის სასიცოცხლო ციკლის განხორციელებისას, WordPress პლატფორმა იწყებს ბევრ აქტივობას, რომლებიც ადრე განვიხილეთ. სისტემას აქვს ინიციალიზაციის კაუჭების ნაკრები, რომლებიც გამოიყენება პროგრამების ინიციალიზაციისთვის მათი ძირითადი ფუნქციების დაყენებამდე.

დეველოპერებისთვის და დიზაინერებისთვის, მკაფიო პროგრამების შესაქმნელად, მნიშვნელოვანია იმის გაგება, თუ როგორ დააყენოთ კაკვები, ასევე საჭმლის ნაწილები vikoristana ინიციალიზაციის კაკვები.

ეს სტატია გამოავლენს WordPress-ში ინიციალიზაციის კაკვების მნიშვნელობას და ასევე აჩვენებს, თუ როგორ გამოიყენოთ ისინი სხვადასხვა სიტუაციებში.

ინიციალიზაციის კაკვების გაცნობა

WordPress გთავაზობთ კაკვების ფართო სპექტრს, რომლებიც შეიძლება გამოყენებულ იქნას დანამატებისა და თემების შემუშავებაში.

ტიპიური გვერდის დაყენებაში, ყველა კაუჭი მოწესრიგებულია. ყველა კაკვები წყდება შემდეგ ძირითადი დანამატი WordPress დაასრულებს გაფართოებას.

ამრიგად, ინიციალიზაციის კაკვები ძირითადად გამოიყენება იმისათვის, რომ, როგორც თქვენ ალბათ მიხვდით, მათი მუშაობის პროცესის ინიციალიზაცია მოახდინონ დანამატებსა და თემებში. მოდით შევხედოთ ხელმისაწვდომი WordPress საწყის კაკვებს მათი გარეგნობის მიხედვით:

  • Init გადის მას შემდეგ, რაც WordPress დაასრულებს მუშაობას და სანამ რაიმე სათაური გადაიცემა. ეს Hook მოდიფიცირებულია დანამატებით პროცესის დასაწყებად.
  • widgets_init გამოიყენება ვიჯეტების დასარეგისტრირებლად პროგრამებით გვერდითა ზოლში. Register_widget ფუნქცია შეფუთულია ამ კაუჭში.
  • admin_init ნაჩვენებია, როგორც პირველი მოქმედება მას შემდეგ, რაც მომხმარებელმა უარყო წვდომა WordPress-ის ადმინისტრაციულ პანელზე. ზოგადად, თქვენ უნდა შეამოწმოთ პარამეტრები, რათა დააყენოთ პარამეტრები, რომლებიც სპეციფიკურია ადმინისტრატორის ზონისთვის.

ამ სამი კაკვის გარდა, WordPress-ს აქვს კიდევ ერთი კაუჭი, სახელად admin_bar_init, რომელიც გამოიძახება ადმინისტრატორის ზოლის ინიციალიზაციის შემდეგ. WordPress Codex არ შეიცავს ამ კაკლის აღწერას; გამოიყენება მხოლოდ მცირე რაოდენობის დანამატები.

შეგიძლიათ გააცოცხლოთ ახალი პროცესი Vykonannya კაკვები dіy u WordPress და kodeksі.

WordPress შემოაქვს კანის კაუჭს იმავე თანმიმდევრობით (როგორც აღწერილია კოდში). ასევე მნიშვნელოვანია კანის სიმპტომების გამოვლენის თანმიმდევრობა. მოდით შევხედოთ ამ სიტუაციებს, რომ გავიგოთ განსხვავება.

ნიშნავს admin_init init hook-ის შუაში

თუ გვჭირდება, შეგვიძლია განვსაზღვროთ WordPress კაკვები სხვა კაკვებში. ტიპიურ ჩანაწერში, init hook მოთავსებულია admin_init hook-ის წინ. შევეცადოთ ამის ჩვენება admin_init-ის განთავსებით init hook-ის შუაში:

Add_action("init", "test_init"); ფუნქცია test_init())( add_action ("admin_init", "test_admin_init"); ) ფუნქცია test_admin_init() (echo "Admin Init Inside Init"; )

ამ კოდის დაწერის შემდეგ, ჩვენ ვხსნით ნაბიჯებს echo ოპერატორის გამოყენებით.

ნიშნავს init admin_init hook-ის შუაში

მოდით შევხედოთ კოდს და სკრიპტს, თუ ადრინდელ კაუჭს აქვს შემდგომი კაკლის მნიშვნელობები, თანმიმდევრობით.

Add_action("admin_init", "test_admin_init"); ფუნქცია test_admin_init() ( add_action ("init", "test_init"); ) ფუნქცია test_init() (echo "Init Inside Admin Init"; )

ამ შემთხვევაში ჩვენ არ ვხსნით რაიმე მნიშვნელობას - როგორც ვივარაუდეთ - init hook-ის ფრაგმენტები ემატება admin_init-მდე და არა admin_init-ის შემდეგ.

როგორც ხედავთ, მნიშვნელოვანია გაიგოთ კაკვების დაყენების პროცედურა წარმატებული დანამატების შესაქმნელად. თანმიმდევრობა, რომლითაც ისინი გამოჩნდებიან, მნიშვნელოვანია WordPress-ის ყველა კაკვისთვის.

ჩვენ შეგვიძლია მივყვეთ init და admin_init კაკვებს

ყველა ინიციალიზაციის კაუჭებს შორის მნიშვნელოვანია ყურადღება მიაქციოთ init-სა და admin_init-ს, რადგან ეს ორი კაკვი ხშირად გამოიყენება ბევრ დანამატში. ინიციალიზაციის კაკვების ამოხსნა ბევრად უფრო ადვილია ამ ორი კაუჭით.

ჩვენ ასევე აღფრთოვანებული ვართ init და admin_init კაკვების ფუნქციონალობით.

Init Hook ემატება თითოეულ აპლიკაციას WordPress საიტის როგორც წინა ნაწილისთვის, ასევე უკანა ნაწილისთვის.

admin_init hook წყდება მას შემდეგ, რაც ადმინისტრატორის განყოფილება დაასრულებს ინიციალიზაციის პროცესს. ამრიგად, ეს ჰუკი ყველა შეკითხვისთვის უკავშირდება ნებისმიერ ადმინისტრაციულ გვერდს. დამნაშავეები რეგისტრირებულნი არიან წინამდებარე კაუჭის ინტერესების დასაკმაყოფილებლად.

Occice Office Tsі Khuki to vicentially vicentized at skin of skin, mi იცავს რანგის აზროვნების ფუნქციონირებაზე, და cichs of Khukiv და კინოს შთამომავალი, უფრო სავარაუდოა, რომ მართოს საიტი.

იაკ ვიკორისტუვატი ინიტ კაკვები

ყველაზე ხშირად, ინიციალიზაციის კაკვებს იყენებენ WordPress-ის სხვა დანამატების უმეტესობა და მნიშვნელოვანიც კი მიჰყვება მათი მოდიფიკაციის პროცესს.

WordPress არ მოითხოვს მათ, ვინც თავად არის დამნაშავე და ვინც არ არის დამნაშავე, დაკავშირება; ამიტომ, მევენახეებს შეუძლიათ მცირე ინდულგენციები, რაც საკუთარი ფულით იწვევს პროდუქტიულობის მნიშვნელოვან შემცირებას. ამ განყოფილებაში ჩვენ გაჩვენებთ, თუ როგორ ეფექტურად გამოიყენოთ init და admin_init კაკვები.

მოდით გადავხედოთ მანკიერი ინიციალიზაციის კაკვების საუკეთესო პრაქტიკას:

init hook

  • ახალი პოსტის ტიპების რეგისტრაცია – WordPress-ის დეველოპერები გირჩევენ გამოიყენონ init hook ახალი პოსტების ტიპების დასარეგისტრირებლად.
  • კონფიგურაციის ინიციალიზაცია და დანამატის დაყენება – მოდულის პარამეტრები და კონფიგურაცია უნდა იყოს დაყენებული კანის აპლიკაციისთვის, ასევე კარგი პრაქტიკაა მათი განთავსება შუა კაუჭში.
  • კორესპონდენტის გაგზავნილ მონაცემებზე წვდომა (Vikorist $_GET და $_POST) – ჩვენ შეგვიძლია გავიაროთ მონაცემების გადაცემა vikorystuvannya ყოველგვარი მოქმედების გარეშე, ამ შემთხვევაში რეკომენდებულია Vikorist init hook-ის გამოყენება, რომელიც გარანტიას იძლევა Vikorist კანის გამოყენებისთვის. .
  • ახალი გადაწერის წესების დამატება - ჩვენ შეგვიძლია დავაყენოთ ახალი გადაწერის წესები, vikoryst hook init, მაგრამ ისინი არ იმუშავებს ჩამოშვების შემდეგ.
  • დამატებითი მოქმედებების დამატება ან შერჩევა – დანამატები უზრუნველყოფენ უამრავ დამატებით მოქმედებას ფუნქციონირების გასაფართოებლად. სიტუაცია შეიძლება დასრულდეს, თუ ახალი ნივთების დამატება ან ძველის ამოღება მოგვიწევს. ასეთ სიტუაციებში მნიშვნელოვანია ყველა დეტალის ჩასმა საწყის კაუჭში.
  • ტექსტური დომენის დამატება დანამატში – WordPress მხარს უჭერს სიტყვების დიდ რაოდენობას, ასე რომ, ჩვენ შეგვიძლია დავამატოთ ფაილი რიგების შესაცვლელად. ეს იმუშავებს საწყისი კაუჭით.

admin_init hook

  • წვდომის კონტროლი - მნიშვნელოვანია გადახედოთ იმ მომხმარებლების წვდომის უფლებებს, რომლებმაც შედიოდნენ სისტემაში, სანამ კლიენტს მისცემთ წვდომას ფუნქციების და ფუნქციების კონკრეტულ კომპლექტზე. admin_init – პირველი მოქმედება, რომელიც შეიტანება ადმინისტრატორის ზონაში, შეგვიძლია გამოვიყენოთ წვდომისთვის.
  • ახალი პარამეტრების დამატება – ჩვენ შეგვიძლია გამოვიყენოთ ეს ჰუკი ახალი გვერდების ან პარამეტრების დასამატებლად WordPress-ის ორიგინალური პარამეტრების ზონიდან.

სხვა ბევრია შესაძლო ვარიანტებიამ კაკვების ვალიდობა, თუმცა, ზოგიერთ შემთხვევაში არსებობს ძლიერი კაკვები, ამიტომ არ არის საჭირო ვიკორის ინიციალიზაციის კაკვების გამოყენება.

ვიკორისტანის კაკვების უარყოფითი კომპრომისები და ინიციალიზაცია

ყველაზე გავრცელებული სიტუაციაა, როდესაც დეველოპერებს არასწორად ესმით ინიციალიზაციის კაკვების სისწორე. კაკვების არასწორად მინიჭებამ შეიძლება გამოიწვიოს პროდუქტიულობის სერიოზული პრობლემები.

მოდით, გადავხედოთ პრობლემის მნიშვნელოვან ნაწილებს, ასევე მის გვერდის ავლით გზებს:

  • გადაწერის წესების განახლება რესურსზე ინტენსიური ოპერაციაა, რომლის დროსაც ყველა გადაწერის წესი განახლდება და ხელახლა წესრიგდება ახალი წესების დასამატებლად ან ძველი წესების წასაშლელად. ბევრი გამყიდველი ანახლებს გადაწერის წესებს დაწყების მოქმედებების შუაში. ეს იწვევს კანის პროდუქტიულობის არასაჭირო დაკარგვას. ჩვენი ბრალია გზის განსაზღვრა ხელით განახლებადამატებითი ღილაკების გადაწერის ან იშვიათი მოქმედებების წესების განახლების წესები, როგორიცაა, მაგალითად, მოდულის კორექტირების შენახვა.
  • მონაცემთა ბაზაზე წვდომა - სხვადასხვა ფუნქციონირების განსახორციელებლად საჭიროა მონაცემთა ბაზაში წვდომა, მაგრამ ასევე მნიშვნელოვანია, რომ თავიდან იქნას აცილებული არასაჭირო ოპერაციები მონაცემთა ბაზაში ინიციალიზაციის კაუჭების შუაში, რომელთა ფრაგმენტები დასრულდება მისი ჩამობანისას. ამის მისაღწევად იდეალური გადაწყვეტა იქნება მონაცემთა ბაზის კაკვების დაკავშირება კაკვებთან, რომლებიც უზრუნველყოფენ ფუნქციონირებას რაიმე მნიშვნელოვანი პროდუქტიულობის დაკარგვის გარეშე.
  • განახლების სხვადასხვა პროცედურები – დანამატები უნდა შეიცავდეს განახლების პროცედურებს, რათა დარწმუნდნენ, რომ ისინი განახლებულია ახალ ვერსიებთან. სთხოვეთ მომწოდებლებს გამოიყენონ ინიციალიზაციის კაუჭები, რათა შეამოწმონ მოდულის ვერსია და სხვა პარამეტრები განახლების პროცესის დაწყებამდე. ჩვენ შეგვიძლია მოვუწოდოთ მომხმარებლებს, დაინსტალირონ დანამატი ეკრანზე, რათა ავტომატურად შეამოწმონ კანის პრობლემები.
  • ინიციალიზაციის კაუჭების გამოყენება ცვლის კაკვებს სიმღერის ფუნქციონირებისთვის - ყველაზე ფართო შემცირების ფასად, რაც მოსალოდნელია მრავალი მომხმარებლის მიერ. WordPress-ს აქვს კაკვების ფართო სპექტრი, რომლებიც დაკავშირებულია უნიკალურ ფუნქციონირებასთან. მნიშვნელოვანია გამოიყენოთ ფუნქციური კაკვები კონფლიქტების თავიდან ასაცილებლად და გაფართოებადი კოდის შესაქმნელად. კაუჭები, როგორიცაა init და admin_init, შეიძლება გამოყენებულ იქნას კონკრეტული კაუჭების ნაცვლად, ამიტომ ბევრი დეველოპერი შეეცდება მათთან მიახლოებას, არ გააცნობიეროს რა დესტრუქციული ეფექტი აქვთ.

მოწინავე სკრიპტირების სცენარების მაგალითები init და admin_init კაკვების გამოყენებით რეკომენდებული კაკვების ნაცვლად:

  • admin_menu – ჩვენ შეგვიძლია დავამატოთ მენიუს გვერდები დამატებითი ფუნქციისთვის add_menu_page. ადმინისტრაციულ მენიუში გვერდების შესაქმნელად რეკომენდირებულია გამოიყენოთ admin_menu hook. თუმცა, ბევრი დეველოპერი იყენებს admin_init hook-ს და მათი უმეტესობა მთავრდება admin_menu hook-ის შემდეგ.
  • wp_enqueue_scripts – სტილისა და სკრიპტების დამატების რეკომენდაციები შეგიძლიათ იხილოთ wp_enqueue_scripts vikory hook-ში. თუმცა, ბევრი დეველოპერი იყენებს wp_enqueue_script init hook-ის შუაში სკრიპტებისა და სტილების რიგში დასაყენებლად.

უამრავი მსგავსი სიტუაციაა, როდესაც vikory-ის დეველოპერები იყენებენ სპეციალურ საწყის კაკს სიმღერის ფუნქციონირებისთვის სპეციალური კაუჭის ნაცვლად და ასეთი მიდგომა თავიდან უნდა იქნას აცილებული, თუ ეს შესაძლებელია.

ვისნოვოკი

WordPress-ის ინიციალიზაციის კაკვები მნიშვნელოვან როლს თამაშობენ დანამატებისა და თემების შემუშავებაში. ბევრი დეველოპერი არასწორად იყენებს ჰაკებს, რომლებიც ხელს უშლიან პროდუქტიულობას. ჩვენ განვიხილეთ ეს სტატისტიკა მართალია, ვიკორასტანნიაბევრი კაკვები, ასევე ზაგალნი პომილკიეს არის პირობები და გზები მათი გვერდის ავლით.

ახლა ჩვენ შეგვიძლია შევამციროთ ეს იგივე ტექნიკა კაუჭებზე, რომლებიც გამოიყენება დანამატებში. არსებობს მოდულების უამრავი გამყიდველი, რომლებიც იყენებენ სხვადასხვა დენის კაკვებს, რათა დანამატები გაფართოებადი გახადონ. ასეთი დანამატებისთვის, ჩვენ შეგვიძლია განვსაზღვროთ დანამატის სპეციფიკური ინიციალიზაციის კაუჭები, რათა დეველოპერებს მივცეთ საშუალება „დაკიდონ“ მითითებული ინიციალიზაციის კაუჭი კაუჭზე.