Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Vijesti
  • Softversko otvaranje eksterne obrade. Siguran način

Softversko otvaranje eksterne obrade. Siguran način

Izlaskom platforme 8.3.9.2033 pojavio se novi mehanizam "Zaštita od opasnih radnji".

Zahvaljujući ovoj inovaciji, 1C se sada počeo zaklinjati na otvaranje obrade (i ne samo):

Sigurnosno upozorenje

Otvara “My External Processing” iz datoteke “My_External_Processing.epf”

Preporučljivo je obratiti pažnju na izvor iz kojeg je ova datoteka preuzeta. Ako nema dogovora sa izvorom o razvoju dodatnih modula, ili postoje sumnje u sadržaj datoteke, onda se ne preporučuje otvaranje, jer to može oštetiti računar i podatke.

Dozvoliti mi da otvorim ovaj fajl?

Tako je 1C odlučio da se bori protiv zlonamernog koda!

Odakle će doći ovaj "zlonamjerni kod" u preduzeću još uvijek je misterija)

Potencijalno opasne radnje uključuju:

  • Učitavanje eksternog izvještaja, obrada ili proširenje konfiguracije.
  • Učitavanje ili ažuriranje konfiguracije/proširenja.
  • Pristup iz vanjskog izvještaja/procesora ili proširenja sljedećim mogućnostima:
  • Izvršavanje naredbe operativnog sistema.
  • Upravljanje korisnicima (snimanje ili brisanje informacija o korisniku baze podataka).
  • Pozivanje metode Connect() menadžera eksterne obrade (izvještaja).
  • Pozivanje metode ExtendConfiguration.Write().
  • Rad sa COM objektima.

Kako se ovo "čudo" može isključiti?

Da biste to učinili, morate pokrenuti 1C Enterprise u načinu konfiguratora.
Odaberite meni “Administracija” - “Korisnici”.
U prozoru koji se otvara za naše korisnike potrebno je otvoriti prozor korisničkih postavki i poništiti karticu "Osnovno" "Zaštita od opasnih radnji"

Postoje i drugi načini da to onemogućite:

Sada je moguće odrediti listu infobaza, pri radu sa kojima će zaštita od opasnih radnji biti onemogućena.
Ova funkcija je odgovorna za parametar DisableUnsafeActionProtection u datoteci conf.cfg, koji vam omogućava da onemogućite zaštitni mehanizam od opasnih akcija za sve korisnike određenih infobaza čiji nizovi veze zadovoljavaju maske navedene u parametru DisableUnsafeActionProtection.

U ovom parametru možete odrediti nekoliko maski odvojenih simbolom “;”

DisableUnsafeActionProtection=test_.*;stage_.*;

Osim toga, zaštita od opasnih radnji korisnika može se programski onemogućiti, za što su dostupni sljedeći parametri i svojstva:

  • Parametar Zaštita od opasnih radnji Connect() metoda eksternih menadžera obrade (izvještaja).
  • Svojstvo Protection Against Dangerous Actions objekta Configuration Extension prije pozivanja Write() metode ovog objekta.

Provjera potrebe za korištenjem zaštite od opasnih radnji provodi se sljedećim redoslijedom:

1. Ako je potvrdni okvir trenutnog korisnika "Zaštita od opasnih aktivnosti" poništen, tada se zaštita smatra onemogućenom.

2. Ako niz povezivanja sa infobazom zadovoljava jedan od obrazaca navedenih u parametru DisableUnsafeActionProtection datoteke conf.cfg, tada se zaštita smatra onemogućenom.

3. Ako je zaštita eksplicitno onemogućena korištenjem parametra Zaštita od opasnih radnji vanjske obrade ili izvještaja.

4. Ako je zaštita eksplicitno onemogućena korištenjem svojstva proširenja Zaštita od opasnih radnji.

Koristeći „Upravljanje trgovinom 11.3“ kao primer, razmotrićemo jednostavan proces povezivanja eksterne štamparske forme. Takođe ćemo razmotriti karakteristike novog sigurnosnog sistema.

Brzi prolaz

Preliminarne radnje

Prvo bi trebao omogućiti funkcionalnost ili provjerite njegovu dostupnost

1. Prijavite se sa punim pravima na bazu podataka.

2. Idite na meni “Matični podaci i administracija”/Blok “Administracija”/Komanda “Štampani obrasci, izvještaji i obrada”.

Dodatak

U odjeljku koji se otvara:

Dodamo obradu pomoću dugmeta "Kreiraj" (ovo je važno) ili "Ažuriraj!" postojeći:

  • Odaberite ga na listi (ako nije odabrano ili prazno, komanda neće raditi, ali neće ništa reći).
  • Kliknite na dugme „Učitaj iz datoteke“.

Nakon pojavljivanja za 1C u vanjskoj obradi, sigurnosne provjere su se pojavile u novim konfiguracijama.

Trebali biste instalirati samo obradu kreiranu samostalno ili primljenu putem poznatih komunikacijskih kanala (ne putem pošte, samo s web stranice s važećim certifikatom ili koju su osigurali zaposlenici programera, što je on potvrdio telefonom).

Ako je sve u obradi propisano od strane programera, tada će biti postavljeno “Postavljanje” - objekti u koje će biti uključena obrada, pojavit će se naredba(e).
Za rad, samo kliknite na "Snimi i zatvori".

Ispitivanje

Odmah nakon toga, u zavisnosti od vrste tretmana:

  • Odštampani obrazac postaje dostupan prilikom otvaranja dokumenta ili sa njegove liste (za već otvoren pri ponovnom otvaranju) klikom na dugme „Odštampaj“.
  • Obrada je dostupna u odjeljcima “Dodatna obrada” u svakom podsistemu
  • Obrada popunjavanja pomoću dugmeta “Popuni” liste ili glavnog komandnog panela obrasca objekta.

Za gornju obradu, pokretanje će izgledati ovako:

Ako je dokument nov, treba ga zapisati, vanjski mehanizam za obradu će vas upozoriti na ovo:

Dalje ponašanje ovisi o ugrađenoj funkcionalnosti: moguće je otvoriti obrazac ili jednostavno obraditi podatke.

Sigurnosna upozorenja u 1C

Nova izdanja i konfiguracije platforme povećale su zaštitu od pokretanja zlonamjernih programa.

Obrada može uzrokovati pokretanje Excela za učitavanje, u kom slučaju će vas novi sigurnosni podsistem također upozoriti:

U ovom slučaju, kod rukovaoca je prekinut.

Ako kliknete na “Da”, sistem će tražiti da ponovo pokrenete naredbu:

Korisnik baze podataka može onemogućiti zaštitu od opasnih radnji putem “Konfiguratora”:

Ovo se ne može promijeniti iz "Enterprise" načina rada, možda je to učinjeno namjerno, a može se pojaviti nakon ažuriranja.

Također treba napomenuti da ako obrada koristi Excel, ona mora raditi u nesigurnom načinu rada (to je bio slučaj prije uvođenja novog sistema, ovo radi paralelno):

"Nije moguće učitati MS EXCEL!!!" “Sigurni način rada je postavljen. Operacija je zabranjena"

U vanjskoj obradi to izgleda ovako:

Programer bi ga trebao postaviti na "False" u opisu interne obrade, tada će sve biti u redu:

Funkcija InformationOnExternalProcessing() ExportRegistrationParameters = Nova struktura; Registracijski parametri.Insert("SafeMode", False);

Prilikom ažuriranja konfiguracije pojavio se i tekst upozorenja o izvoru iz kojeg je konfiguracijski fajl dobiven:

Ispis (Ctrl+P)

Konfiguracijski objekti

Ako je potrebno koristiti “nepouzdani” programski kod na serveru: eksternu obradu ili programski kod koji je korisnik unio za korištenje u metodama Run() i Calculate(), možete koristiti siguran način rada.

U sigurnom načinu rada:

  • Privilegirani način rada otkazan.
  • Ulazak u privilegirani način rada ignorisano.
  • Zabranjeno operacije koje dovode do upotrebe eksternih sredstava u odnosu na platformu 1C: Enterprise (uključujući neblokirajuće analoge navedenih metoda):
  • COM mehanizmi:
    • COMObject();
    • GetCOMObject();
    • WrapperHTMLDocument.GetCOMObject().
  • Učitavanje vanjskih komponenti:
    • LoadExternalComponent();
    • ConnectExternalComponent().
  • Pristup sistemu datoteka:
    • ValueInFile();
    • CopyFile();
    • MergeFiles();
    • MoveFile();
    • SplitFile();
    • CreateDirectory();
    • DeleteFiles();
    • New File;
    • New xBase;
    • EntryHTML.OpenFile();
    • ReadHTML.OpenFile();
    • ReadXML.OpenFile();
    • WriteXML.OpenFile();
    • ReadFastInfoset.OpenFile();
    • EntryFastInfoset.OpenFile();
    • CanonicalXMLRecord.OpenFile();
    • TransformXSL.LoadFromFile();
    • WriteZipFile.Open();
    • ČitanjeZipFile.Open();
    • Novi ReadText(), ako je prvi parametar string;
    • ReadText.Open(), ako je prvi parametar string;
    • NewTextRecord(), ako je prvi parametar string;
    • WriteText.Open(), ako je prvi parametar string;
    • NewTextExtract();
    • promjena svojstva ExtractText.FileName;
    • ExtractText.Write();
    • Nova slika(), ako je prvi parametar string;
    • Picture.Write();
    • new BinaryData();
    • BinarniData.Napiši();
    • NewDataRecord(), ako je prvi parametar string;
    • Novi ReadData(), postoji prvi parametar - string;
    • sve metode objekta FileStreamManager;
    • Novi FileStream();
    • FormattedDocument.Write();
    • GeographicScheme.Read();
    • GeographicScheme.Write();
    • GeographicScheme.Print();
    • TabularDocument.Read();
    • TabularDocument.Write();
    • TabularDocument.Print(); GraphicScheme.Read();
    • GraphicScheme.Write();
    • GraphicScheme.Print();
    • TextDocument.Read();
    • TextDocument.Write().
  • Pristup Internetu:
    • Nova internet konekcija,
    • Nova InternetMail,
    • Novi InternetProxy,
    • Nova HTTP veza,
    • Nova FTPConnection.

PAŽNJA! Prilikom izvođenja zabranjenih operacija, iznimka se izbacuje u vrijeme izvođenja.

Bilješka. Eksterni izvještaji i obrada otvoreni pomoću menija Datoteka - Otvori se izvršavaju u sigurnom načinu rada ako korisnik nema administrativna prava pristupa.

Broj uključivanja sigurnog načina rada mora odgovarati broju isključenja. Međutim, ako je siguran način rada uključen unutar procedure ili funkcije (jednom ili više), ali nije isključen, sistem će se automatski isključiti onoliko puta koliko je bilo nepotpunih uključenja u proceduri ili funkciji koja je ostala.

Ako u proceduri ili funkciji poziva metodu Postavi SafeMode (False) napravio više od poziva metoda PostaviSafeMode(True), tada će biti izbačen izuzetak.

Softverska instalacija sigurnog načina rada može biti potrebna kada programer konfiguracije namjerava koristiti programski kod treće strane (u odnosu na konfiguraciju), za čiju pouzdanost programer ne može garantirati. Primjer takvog koda je izvršavanje metoda Execute() i Compute() u slučajevima kada je izvršni kod dobiven iz vanjskog svijeta. U ovom slučaju, dobra praksa bi bila da postavite Safe Mode prije izvršavanja ovih metoda:

// Generira se programski kod koji treba izvršiti // Moguće je da je kod učitan iz eksternih izvora // ili da se unese ručno ExecutableCode = GetExecutedCodeFromExternalWorld(); // Omogućavanje sigurnog načina rada SetSafeMode(True); // Izvršavanje potencijalno opasnog koda Execute(ExecutableCode); // Isključivanje sigurnog načina rada SetSafeMode(False);

U nekim slučajevima, postavke sigurnog načina rada mogu biti u sukobu s postavkama privilegiranog načina rada. Primjer takvog sukoba je postavljanje dokumenta za koji je postavljeno svojstvo Privilegirani način prilikom objavljivanja, iz koda na ugrađenom jeziku koji se izvršava u sigurnom načinu rada. U ovom slučaju, privilegirani način rada je onemogućen i pokušaji da se on omogući se zanemaruju. Kao rezultat toga, kod u ugrađenom jeziku, koji „računa“ na omogućeni privilegovani način rada, „nailazi“ na njegovo odsustvo, što dovodi do grešaka sa neočiglednim razlozima za njihovo pojavljivanje. Kako bi spriječio ovu situaciju, sistem 1C:Enterprise automatski onemogućuje siguran način rada za rukovaoce događajima koji su dostupni u objektnom modulu ili modulu menadžera, pod uslovom da se izvršni kod na ugrađenom jeziku ne nalazi u konfiguracijskoj ekstenziji. Takvi rukovaoci su označeni na poseban način u pomoćniku za sintaksu.

Također pruža mogućnost onemogućavanja sigurnog načina rada iz ugrađenog jezika (ako programski kod koji pokušava da ga onemogući nije u konfiguracijskoj ekstenziji). Za onemogućavanje sigurnog načina rada postoji način PostaviDisableSafeMode(). Pomoću metode možete provjeriti da li je siguran način rada trenutno onemogućen (automatski ili pozivanjem metode). GetDisableSafeMode().

Unutar jedne metode u ugrađenom jeziku ne može postojati više od jednog nivoa ugniježđenja postavljanja sigurnog načina rada (pozivanjem metode SetSafeMode()) i postavljanja onemogućavanja sigurnog načina rada (automatski tokom izvršavanja događaja metapodataka objekta rukovaoce ili pozivanjem metode SetSafeModeDisable()). Prilikom pokušaja povećanja ugniježđenja, izbacuje se izuzetak:

// Ispravna upotreba ProcedureProcedureName() SetDisableSafeMode(True); SetSafeMode(true); SetSafeMode(False); SetDisableSafeMode(False); EndProcedure // Pogrešna upotreba ProcedureProcedureName() SetDisableSafeMode(True); SetSafeMode(true); SetDisableSafeMode(False); // Izuzetak EndProcedure ProcedureProcedureName() SetSafeMode(True); SetDisableSafeMode(False); // Izuzetak EndProcedure

Kada pokrenete program Document Upload kao običan korisnik, pojavljuje se greška "Siguran način rada je postavljen. Operacija je zabranjena."

Ova poteškoća nastaje jer Nema dovoljno prava za pokretanje eksterne obrade. Da biste konfigurirali prava pristupa, prijavite se u bazu podataka u 1C Enterprise modu u ime Administrator i idite u sekciju Postavke korisnika i prava / Pristup profilima grupe, kliknite Za kreiranje grupe.

Unesite naziv grupe i označite okvire za uloge koje su dostupne korisnicima ove grupe -

  • Interaktivno otvaranje eksternih izvještaja i obrada
  • Korištenje dodatnih izvještaja i obrada

Kliknite Sačuvaj i zatvori


Vratite se na meni Korisnici i sa liste izaberite zaposlenog koji će raditi u programu Document Upload. Kliknite na Dozvole. Na listi profila izaberite prethodno kreirani profil. Kliknite Zapiši.


Kako bi korisnici mogli da započnu obradu, preporučuje se dodavanje Document Loading na listu eksterne obrade. Da biste to učinili u meniju Administracija / Štampani obrasci i obrada / Dodatni izvještaji i obrada kreirajte novu obradu. Navedite putanju do datoteke "Download Documents.epf" i dodijelite ime. Odredite lokaciju obrade u meniju, odakle korisnik može kasnije da je pokrene, na primer, izaberite meni Imenici

Klikom na stavku Brzi pristup označavate koji korisnici imaju pristup obradi:


Nakon podešavanja, kliknite Sačuvaj i zatvori. Za početak obrade, korisnici će samo trebati ponovo ući u bazu podataka i otvoriti je iz pristupnog menija (u primjeru - Imenici) i kliknuti Izvrši.


Otvori Meni - Sve funkcije.... i pronađite opciju "Sigurnosni profili se koriste" na listi.


Samo poništite opciju "Sigurnosni profili se koriste".


Nakon toga, program će se uspješno pokrenuti.

Programsko otvaranje eksterne obrade vrši se pomoću globalnog kontekstnog objekta ExternalProcessing, koji ima tip ExternalProcessingManager. Za svaki način rada 1C platforme (regularni način aplikacije i način upravljane aplikacije) koriste se različite objektne metode za rad s vanjskom obradom.

Pokretanje vanjske obrade u normalnom načinu aplikacije

U tipičnoj aplikaciji, morate koristiti metodu Create() objekta ExternalProcessing, kojoj se prosljeđuje puno ime vanjske datoteke za obradu. Metoda vraća objekt tipa ExternalProcessing, ovaj objekt je eksterna obrada koja se otvara. Ako trebate otvoriti eksterni obrazac za obradu, pozovite metodu GetForm() na primljenom objektu, koja će vratiti glavni obrazac, a zatim pozovite metodu Open() da biste ga otvorili.


Obrada = ExternalProcessing.Create(FullFileName);
Processing.GetForm().Open();

U vanjskoj obradi, glavni obrazac uvijek mora biti običan, a kontrolirani obrazac uvijek mora biti dodatni, inače metoda GetForm() neće raditi u normalnom načinu rada aplikacije.

Pokretanje vanjske obrade u načinu upravljanja aplikacijom

U načinu upravljanja obrascima, algoritam je podijeljen prema kontekstu izvršavanja. Na klijentu primamo binarne podatke koristeći puno ime eksterne datoteke za obradu. Primljene binarne podatke prenosimo na server i stavljamo u privremenu memoriju. Zatim morate pozvati metodu Connect() ExternalProcessing objekta, na koji se prosljeđuje adresa za privremenu memoriju. Metoda vraća ime povezane eksterne obrade. Vraćamo ime eksterne obrade klijentu, kreiramo putanju niza do obrasca za obradu i koristimo metodu OpenForm() da otvorimo eksterni obrazac za obradu.

&Na serveru
Funkcija GetExternalProcessingName(BinaryData)
AddressInTemporaryStorage = PlaceInTemporaryStorage(BinaryData);
Vrati ExternalProcessing.Connect(AddressInTemporaryStorage);
EndFunction

&OnClient
FullFileName = ""; // Puni naziv vanjske datoteke za obradu.
FileData = new BinaryData(FullFileName);
ExternalProcessingName = GetExternalProcessingName(FileData);
OpenForm("ExternalProcessing." + ExternalProcessingName + ".Form");

Siguran način rada za eksternu obradu

Metode Create() i Connect() objekta External Processing imaju ulazni parametar SafeMode - znak povezivanja vanjske obrade u sigurnom načinu rada. Ako parametar nije naveden, veza će se uspostaviti u sigurnom načinu rada.
Bezbedan način rada je dizajniran da zaštiti sistem od izvršavanja "nepouzdanog" programskog koda na serveru. Potencijalna opasnost dolazi od vanjske obrade ili programskog koda koji je unio korisnik za korištenje u metodama Run() i Calculate().
Safe mode nameće sljedeća ograničenja:
  • privilegirani način rada se otkazuje ako je instaliran;
  • pokušaji ulaska u privilegirani mod se zanemaruju;
  • operacije sa COM objektima su zabranjene;
  • zabranjeno je učitavanje i povezivanje vanjskih komponenti;
  • pristup sistemu datoteka je zabranjen (osim za privremene datoteke);
  • Pristup internetu je zabranjen.
Procesi otvoreni interaktivno se ne izvode u sigurnom načinu rada, stoga se preporučuje implementacija mehanizma za otvaranje vanjskih procesora u sigurnom načinu rada, kao i na nivou dozvole da se korisniku zabrani interaktivno otvaranje eksternih procesora.
Za zabranu interaktivnog otvaranja obrade, u svim ulogama koje su dodijeljene korisniku, potrebno je ukloniti pravo „Interaktivno otvaranje eksterne obrade“ (vidi sliku 1).
Slika 1. Prava na interaktivno otvaranje eksterne obrade/izvještaja
Pravo "Interaktivno otvaranje eksterne obrade" ni na koji način ne utiče na objekat Eksterne obrade.

Programsko otvaranje eksternih izvještaja je slično vanjskoj obradi, ali trebate koristiti globalni kontekstni objekt ExternalReports, koji ima tip ExternalReportsManager.

Najbolji članci na ovu temu