1c o'rnatilgan til stekining to'lib ketishi. Stack Overflow

  • 10.01.2022

04/14/2016 3.22-versiya interfeysi o'zgartirildi, registrlarni o'tkazishda xatolar tuzatildi, tashkilot va buxgalteriya siyosatini o'tkazish tartibi o'zgartirildi. Platforma 8.3.7.2027 BP 3.0.43.174
03/17/2016 Versiya 3.24. Tuzatilgan xatolar. Platforma 8.3.8.1747 BP 3.0.43.241
06/16/2016 Versiya 3.26. Tuzatilgan xatolar. Platforma 8.3.8.2088 BP 3.0.44.123
10/16/2016 Versiya 4.0.1.2 Qimmatli qog'ozlarni o'tkazish qat'iy belgilangan, relizlar uchun hisob siyosatini o'zgartirish 3.44.*. Platforma 8.3.9.1818 BP 3.0.44.164.
04/19/2017 Versiya 4.0.2.7 Kataloglar bilan bog'liq registrlarni o'tkazish algoritmi o'zgartirildi, xatolar tuzatildi, havolalarni qayta yozish bilan qattiq uzatish.
05/29/2017 Versiya 4.0.4.5 Harakatlarni o'tkazish o'zgartirildi, uzatilgan hujjatlarning harakatlarini ko'rish qo'shildi, boshqa narsa....
30/05/2017 Versiya 4.0.4.6 Manbada mavjud kataloglar ro'yxatini to'ldirishda xatolik tuzatildi (shoyga rahmat)
06/17/2017 Versiya 4.0.5.1 Harakatni uzatish algoritmi o'zgartirildi.
07/19/2017 Versiya 4.0.5.4 BP 2.0 dan CI uzatishni o'zgartirdi. Kutilmaganda, Smilegm UT 10.3 dan transfer sodir bo'ldi, bu versiyada transfer bu holat uchun biroz tuzatilgan)))
08/10/2017 Versiya 4.0.5.5 BP 2.0 dan ko'chirishda tuzatilgan xatolar
19/09/2017 4.4.5.7 versiyasi 3.0.52.* uchun qattiq ulanish tekshiruvi
28.11.2017 Versiya 4.4.5.9 Tuzatilgan xatolar
12/06/2017 5.2.0.4-versiya Havolalarni qidirish algoritmi qayta ishlab chiqildi. BP 1.6 dan uzatish protseduralari qo'shildi, BP bilan qattiq bog'lanish yo'q - siz undan "deyarli" bir xil konfiguratsiyalar ma'lumotlarini uzatish uchun xavfsiz foydalanishingiz mumkin. Men barcha sharhlarni imkon qadar tezroq tuzatishga harakat qilaman.
12/08/2017 Versiya 5.2.1.3 Ish haqi bo'yicha hisobotlarni BP.2.0 dan BP 3.0 ga o'tkazish algoritmi qo'shildi. Xuddi shu konfiguratsiyalar o'rtasida almashish uchun kiritilgan o'zgarishlar.
12/19/2017 5.2.2.2-versiya Ushbu registrlarning o'lchamlarida joylashgan ma'lumotnomalar uchun mustaqil ma'lumot registrlarini o'tkazish to'g'rilandi.

12/06/2017 Yangi ishlov berish versiyasi 5.2.0.4. Muhim o'zgarishlardan BP 1,6 dan BP 3,0 ga o'tish imkoniyati mavjud. Asosiy o'zgarish katalog havolalarini qidirishni boshqarishdir - oldingi versiyalarda qidiruv GUID tomonidan amalga oshirilgan va ushbu versiyada "Tafsilotlar bo'yicha" qidiruvini yoqishingiz mumkin:

01/17/2018 Versiya 5.2.2.3 Tuzatildi - bo'ysunuvchi ma'lumotnomalar va davriy ma'lumotlar registrlarida aniqlangan xatolar.

07/19/2018 Versiya 5.2.2.8 Ruxsat etilgan xatolar.

har qanday katalog uchun qidiruv ma'lumotlarini o'rnatishingiz mumkin. Ushbu rejimning o'zi ishchilarning ko'plab talablari bilan "mavjud bo'lgan", chunki allaqachon mavjud bo'lgan ma'lumotlar bazasida almashinuv zarur bo'lganda (masalan, ikkita tashkilotning buxgalteriya hisobini bitta ma'lumotlar bazasiga birlashtirish uchun).

21/12/2015 Platforma 8.3.7.1805 va BP 3.0.43.29 mos ravishda chiqarildi va yangi versiya qayta ishlash 3.1:-) (quyida tavsif). Yangi funksionallik - ikkita BP ma'lumotlar bazasi o'rtasidagi balanslar va aylanmalarni solishtirish qobiliyati (barcha hisoblar uchun, agar hisoblar jadvallari mos kelsa yoki individual mos keladigan buxgalteriya hisoblari uchun, tahliliy yoki tahlilsiz).
01/03/2016 3.5-versiya - manba ma'lumotlar bazasiga ulanish mexanizmi o'zgartirildi - BSP 2.3.2.43 ga muvofiqlashtirildi. Kichik xatolar tuzatildi. Platforma 8.3.7.1845, BP 3.0.43.50
02/16/2016 3.6-versiya - Harakatlar bilan uzatiladigan hujjatlar uchun "Qo'lda tuzatishni o'rnatish" bayrog'i qo'shildi. Harakatlarni o'tkazish belgilangan - sana davr boshidan kamroq bo'lgan hujjatlar harakatsiz o'tkaziladi. Platforma 8.3.7.1917, BP 3.0.43.116
03/22/2016 3.10-versiya - Malumot ob'ektlarini majburiy qayta yozish uchun "Har doim havolalarni qayta yozish" bayrog'i qo'shildi (o'tkazish tezligi sezilarli darajada kamayadi, lekin ba'zan kerak). "Tayyorlik" yorlig'i qo'shildi, bu erda siz hisoblarning manba va maqsadli jadvallari (hisob kodlari bilan bir xil darajada) va doimiylarni uzatish o'rtasidagi yozishmalarni sozlashingiz mumkin. Platforma 8.3.7.1970, BP 3.0.43.148

04/03/2016 3.11-versiya Manbada mavjud bo'lgan hujjatlar ro'yxatini to'ldirish o'zgartirildi: u hisoblar rejasi bo'yicha harakatlar bo'yicha to'ldirilgan, xuddi //site/public/ dagi kabi, davr uchun havolalar orqali to'ldirilgan. 509628/

Qayta ishlash ITS bilan "MXLni yuklash" ga o'xshash har qanday davr uchun ma'lumotlarni uzatish uchun mo'ljallangan, lekin XML, JSON va hokazo oraliq fayllardan foydalanmasdan - ma'lumotlar bazasidan ma'lumotlar bazasiga COM orqali almashish. 3.10 dan eski versiyalarda comcntr.dll ni (agar OS "ruxsat bersa") ro'yxatdan o'tishni ta'minlaydigan BSP algoritmiga muvofiq ulanish qo'llaniladi, shuningdek ulanishni o'rnatishning iloji bo'lmaganda turli xil xabarlar. , masalan - "Infobase yangilanish jarayonida" va hokazo. Axborot xavfsizligi manbai sifatida qabul qiluvchini tanlashni tekshirish qo'shildi - ogohlantirish beriladi.

Quyidagilar uchun ishlatilishi mumkin:

1. Normativ va ma'lumotnoma ma'lumotlarini (RMI) AT manbasidan AT qabul qiluvchiga o'tkazish (to'liq RMIni uzatish foydalanuvchining iltimosiga binoan amalga oshiriladi, kerakli ma'lumotnomalar va boshqalar har qanday uzatish paytida havolalar orqali uzatiladi).

2. Har qanday tanlangan davr uchun hujjatlarni o'tkazish.

3. "Buzilgan" IB dan barcha ma'lumotlarni uzatish, agar u 1C: Enterprise rejimida ishga tushirilsa, ma'lumotlarni yuklash yoki Konfiguratorni ishga tushirish mumkin emas.

Qayta ishlash xususiyati - qabul qiluvchi va manbaning IS 2.0 dan 3.0 gacha o'tkazish har xil bo'lishi mumkin - nashrlar har xil, ammo uzatish ishlaydi !!! Mos kelmaydigan atributlar e'tiborga olinmaydi yoki ular uchun uzatish algoritmlari ko'rsatilishi kerak.

Izoh: Ma'lumotlarni konvertatsiya qilishdan FOYDALANMAYDI! Va nega deb so'ramang!!! Ayniqsa korroziv bo'lganlar uchun - BP 3.0 deyarli har kuni o'zgaradi, uzatish qoidalarini yangilab turish uchun hech qanday kuch yo'q - bu erda hamma narsa oddiyroq :-).

Qayta ishlashning yana bir xususiyati shundaki, u qabul qiluvchining ISda ishga tushiriladi (funktsional jihatdan eng yaqin analoglar aksincha ishlaydi - manbadan qabul qiluvchigacha).

Ishga kirishish - qayta ishlash muddatini belgilashingiz kerak, manbadan tashkilotni ko'rsating, u belgilangan joyga o'tkaziladi.

Tashkilotni topshirishda buxgalteriya siyosati o'tkaziladi va ma'lumotlarning "qo'shiladigan" registrlari. Shuning uchun, manbada tashkilotni birinchi marta tanlaganingizda, u qabul qiluvchida paydo bo'lishidan oldin biroz vaqt o'tadi.

Manba va qabul qiluvchining hisob rejalari bir xil bo'lishi kerak, 2-versiyada har xil hisoblar bo'lmasligi kerak. * Qabul qiluvchiga o'tkazilmaydi, kelgusida hisob-kitoblar va tahliliy ma'lumotlarni moslashtirish uchun sozlashni kiritish rejalashtirilgan. Hisoblar qabul qiluvchida topilmagan kodlar bo'yicha uzatiladi YARATILMAYDI!!!

Qolgan ob'ektlar ichki identifikatorlar (GUID) tomonidan uzatiladi, shuning uchun siz ba'zi asosiy havolalarga e'tibor berishingiz kerak, masalan - Valyutalar.

Agar siz "toza" ma'lumotlar bazasi bilan almashishni rejalashtirmoqchi bo'lsangiz, u holda almashishdan oldin birinchi boshlanishida to'ldirilgan kataloglarni o'chirib tashlash yaxshiroqdir. Shu maqsadda, qayta ishlashda sahifa taqdim etiladi, unda siz kataloglarning ushbu elementlarini olishingiz va ularni o'chirishingiz mumkin. Hech bo'lmaganda, siz valyutani olib tashlashingiz kerak "rub." - chunki takrorlash deyarli muqarrar (printsipial jihatdan, bu BP 3.0 ga o'rnatilgan dublikatlarni qidirish va almashtirishdan keyin osongina tuzatiladi).

Qayta ishlash, dastlabki to'ldirish shakli ochiq bo'lgan kataloglarni o'chirish uchun sahifani chaqirishni ta'minlaydi:

Qayta ishlash ochilganda, dastlabki to'ldirish paytida to'ldirilgan kataloglarni o'chirish uchun sahifa ko'rsatiladi:

3.22 versiyasidan boshlab interfeys o'zgartirildi, endi barcha tayyorgarlik operatsiyalari yorliqli va har doim mavjud


Manba va oluvchining Hisoblar rejasining korrespondentsiyasini tekshirish va hisoblarning korrespondentsiyasini ko'rsatishni unutmang.

Oldindan belgilangan katalog elementlarini o'chirishingiz shart emas - ular konfiguratsiya identifikatorlari (GUID emas) orqali uzatiladi.

Kataloglar va hujjatlardan tanlash formasi yordamida uzatish uchun ob'ektlarni tanlashingiz mumkin (ushbu ob'ekt bilan bog'langan axborot registrlari avtomatik ravishda uzatiladi, shuning uchun ularni alohida tanlash shart emas).Registrlarni uzatish vaqtinchalik o'chirib qo'yilgan - siz o'tkazish uchun registrlar ro'yxatini ishlab chiqishingiz kerak - biror narsa o'tkazilishi kerak, biror narsa yo'q, bu bosqichda uni ma'lumotnomalarda o'tkazish kifoya, o'tkazish uchun registrlar ro'yxati bo'ladi. shablonda, keyingi versiyalarda.

2.0 bilan almashishda ba'zi tafsilotlar (masalan, Bog'lanish uchun ma'lumot) qayta ishlashga o'rnatilgan algoritmga muvofiq uzatiladi, chunki 2.0 va 3.0 uchun ular boshqacha saqlanadi. Vaziyat bir qator hujjatlar bilan o'xshash (masalan, qarzni to'g'irlash).

Ob'ekt turlarining ro'yxati 3.22 versiyada boshqacha tarzda to'ldirilishi mumkin, bu pastki menyuda joylashtirilgan, o'zgarishlar rasmda ko'rsatilgan:

Qayta ishlashdan foydalanishni soddalashtirish mavjud - siz almashish uchun kataloglarni tanlay olmaysiz, shunchaki qabul qiluvchidagi turlar ro'yxatini manbada kamida bitta yozuvga ega bo'lgan katalog turlari bilan to'ldiring.

Qayta ishlashga tartib o'rnatilgan bo'lib, unda manbadan manzilga o'tkazilishi kerak bo'lmagan kataloglar ro'yxati keltirilgan («O'tkazishdan chiqarib tashlash» tartibi). Siz ushbu tartibga istalgan kataloglarni qo'shishingiz (o'chirishingiz) mumkin. Agar siz butun NSIni o'tkazishingiz shart bo'lmasa, hujjatlarni topshirish kifoya, siz turlarni tanlamasdan ham ro'yxatini olishingiz mumkin, faqat tranzaktsiyalar mavjud bo'lgan barcha dastlabki hujjatlarni to'ldiring.

Hujjatlarni harakat bilan o'tkazish ta'minlanadi, almashinuvlar uchun 3,0 dan 3,0 gacha va hisob-kitoblar jadvaliga ko'ra u birma-bir ishlaydi, almashishda 2,0 dan 3,0 gacha xatoliklarga yo'l qo'yish mumkin, shuning uchun hujjatlarni harakatsiz o'tkazish tavsiya etiladi va keyin ularni shunchaki qayta o'tkazish tavsiya etiladi. qabul qiluvchi. Hujjatlarni harakatlar bilan o'tkazishda "Qo'lda sozlash" bayrog'i o'rnatiladi.

"Posted" atributi qabul qiluvchining hujjatlarida xuddi manbada bo'lgani kabi o'rnatiladi, ammo harakatlar (agar ular o'tkazilmagan bo'lsa) faqat hujjatlar joylashtirilgandan keyin paydo bo'ladi, masalan, hujjatlar to'plamiga o'rnatilgan hujjatlarni joylashtirishdan foydalangan holda. BP 3.0 (tavsiya etilgan variant) yoki ushbu qayta ishlashdan ("Hujjatlarni joylashtirish" tugmasi bu erda).

Agar qayta ishlash doimiy almashinuv uchun qo'llanilishi rejalashtirilgan bo'lsa, uni qabul qiluvchining IBda ro'yxatdan o'tkazish mumkin ("Ro'yxatdan o'tish" tugmasi). "Bir martalik" o'tkazmalar uchun siz uni oddiygina Fayl - Ochish orqali ishlatishingiz mumkin.

21/12/2015 - 3.1-versiya platformasi 8.3.7.1805 va BP 3.0.43.29 (3.0.43.* uchun 2.15-versiya ishlamaydi - konfiguratsiya juda o'zgargan).

O'zgartirildi:

Ulanish opsiyasini tanlash uchun dialog oynasi, mijoz-server bayrog'i har doim mavjud bo'lib, uning sozlanishiga qarab, fayl bazasi papkasini tanlash yoki serverdagi ma'lumotlar bazasi nomi va nomi bo'lgan maydonlar mavjud. serverning o'zi (muloqot oynasi 2.15 versiyasidagi xatolik tuzatilgan)

- YANGI FUNKSIONALLIK: Manba va qabul qiluvchi ma'lumotlar bazalari o'rtasidagi balanslar va aylanmalarni turli darajadagi batafsillikdagi muvofiqlashtirish mexanizmi:


Menimcha, yarashuv variantlarini tanlash rasmdan aniq:


Yupqa va qalin mijozda foydalanishda farqlar mavjud - qalin mijozda faylni taqqoslash oynasi darhol ko'rsatiladi:


Yupqa mijozda men dasturiy tugmachani bosish bilan buzmadim, taqqoslash oynasini ko'rsatish uchun oddiy variantni taklif qilaman:


Yupqa mijozda, IMHOda taqqoslash qulayroq, chunki. farqlar uchun navigatsiya tugmalari mavjud, bu sichqoncha bilan aylantirishdan ko'ra katta hajmdagi jadvallar uchun qulayroqdir:

03/22/2016 3.10-versiya - Malumot ob'ektlarini majburiy qayta yozish uchun "Har doim havolalarni qayta yozish" bayrog'i qo'shildi (o'tkazish tezligi sezilarli darajada kamayadi, lekin ba'zan kerak). "Tayyorlik" yorlig'i qo'shildi, bu erda siz hisoblarning manba va maqsadli jadvallari (hisob kodlari bilan bir xil darajada) va doimiylarni uzatish o'rtasidagi yozishmalarni sozlashingiz mumkin. Platforma 8.3.7.1970, BP 3.0.43.148

- YANGI FUNKSIONALLIK: Hujjatlarni topshirishdan oldin, manba va maqsaddagi yozishmalar uchun hisoblar rejasini, shuningdek, belgilangan konstantalarning muvofiqligini tekshirish tavsiya etiladi.

Buning uchun "Tayyorlik" yorlig'i qo'shildi, unda siz ushbu yozishmalarni o'rnatishingiz mumkin:


Hisob-kitoblarning korrespondensiya jadvalini to'ldirish algoritmi oddiy - manbada mavjud aylanmalar tahlil qilinadi va u erda duch kelgan har bir hisob qabul qiluvchida kod bo'yicha moslik qidiriladi, agar moslik topilmasa, hisob qaydnomasi bilan chiziq. Jadvalda kod ko'rsatiladi, uning yordamida siz qabul qiluvchining hisobini tanlashingiz kerak, u uzatishda ishlatiladi. Pook moslashuvi kod darajasida o'rnatiladi.

O'rnatilgan konstantalarning mosligini tekshirish va uzatish uchun tegishli jadvaldan foydalaniladi:

Biz to'ldiramiz, agar kerak bo'lsa - o'tkazamiz. Faqat belgilangan konstantalar ko'chiriladi...

Dasturlar stegi - bu LIFO (Oxirgi kirish, birinchi chiqish) navbati tamoyiliga muvofiq tashkil etilgan maxsus xotira maydoni. "Stack" nomi uning qurilish printsipining plitalar to'plamiga o'xshashligidan kelib chiqqan - siz plitalarni bir-birining ustiga qo'yishingiz mumkin (stekga qo'shish usuli, "surish", "surish") va keyin ularni tanlashingiz mumkin. yuqoriga, yuqoridan boshlab (stekdan qiymat olish usuli, "popping", "pop"). Dastur stekini chaqiruv stegi, bajarilish stegi, mashina stegi ("stek" - mavhum ma'lumotlar strukturasi bilan adashtirmaslik kerak) deb ham atashadi.

Stack nima uchun? Bu sizga subprogrammalar qo'ng'iroqlarini qulay tarzda tashkil qilish imkonini beradi. Chaqirilsa, funksiya ba'zi argumentlarni oladi; u mahalliy o'zgaruvchilarni biror joyda saqlashi kerak. Bundan tashqari, bir funktsiya boshqa funktsiyani chaqirishi mumkinligini hisobga olishimiz kerak, bu ham parametrlarni o'tkazishi va o'z o'zgaruvchilarini saqlashi kerak. Stackdan foydalanib, parametrlarni o'tkazishda siz ularni faqat stekga qo'yishingiz kerak, keyin chaqirilgan funksiya ularni u erdan "poplashi" va ulardan foydalanishi mumkin. Mahalliy o'zgaruvchilar ham u erda saqlanishi mumkin - kodining boshida funksiya stek xotirasining bir qismini ajratadi va boshqaruv qaytib kelganda uni tozalaydi va chiqaradi. Yuqori darajali tillardagi dasturchilar odatda bunday narsalar haqida o'ylamaydilar - kompilyator ular uchun barcha kerakli muntazam kodni yaratadi.

Xatoning oqibatlari

Endi biz muammoga yaqinlashdik. Mavhum shaklda stek cheksiz xotira bo'lib, unga yangi elementlarni cheksiz qo'shish mumkin. Afsuski, bizning dunyomizda hamma narsa cheklangan - va stek xotirasi bundan mustasno emas. Funktsiya argumentlari stekga surilganda u tugasa nima bo'ladi? Yoki funksiya o'z o'zgaruvchilari uchun xotira ajratadimi?

Stack overflow deb ataladigan xatolik yuzaga keladi. Stack foydalanuvchi tomonidan belgilangan funktsiyalarni chaqirishni tashkil qilish uchun zarur bo'lganligi sababli (va zamonaviy tillardagi deyarli barcha dasturlar, shu jumladan ob'ektga yo'naltirilgan dasturlar ham u yoki bu tarzda funktsiyalar asosida qurilgan), ularni endi chaqirib bo'lmaydi. Shunday qilib, operatsion tizim boshqaruvni o'z qo'liga oladi, stekni tozalaydi va dasturni to'xtatadi. Bu erda siz stekning to'lib ketishi va o'rtasidagi farqni ta'kidlashingiz mumkin - birinchi holda, noto'g'ri xotira maydoniga kirishda xatolik yuzaga keladi va agar ushbu bosqichda himoya bo'lmasa, u hozirda o'zini namoyon qilmaydi - agar vaziyatlar muvaffaqiyatli bo'lsa , dastur normal ishlashi mumkin. Agar faqat kirilayotgan xotira himoyalangan bo'lsa, . Stack bo'lsa, dastur albatta tugaydi.

To'liq aniq bo'lishi uchun shuni ta'kidlash kerakki, hodisalarning bunday tavsifi faqat "mahalliy" (native) kodni kompilyatorlar uchun to'g'ri keladi. Boshqariladigan tillarda virtual mashina boshqariladigan dasturlar uchun o'z stekiga ega bo'lib, uni kuzatib borish ancha oson va siz hatto to'lib ketish sodir bo'lganda dasturdan istisno qilishingiz mumkin. C va C++ tillarida bunday “hashamat”ga ishonish mumkin emas.

Xatoning sabablari

Bunday noxush holatga nima olib kelishi mumkin? Yuqorida tavsiflangan mexanizmga asoslanib, variantlardan biri juda ko'p ichki funksiya qo'ng'iroqlari. Ushbu stsenariy, ayniqsa, rekursiyadan foydalanganda mumkin. Cheksiz rekursiya (dangasa baholash mexanizmi bo'lmaganda) ba'zan foydali foydalanishga ega bo'lgan dan farqli o'laroq, shu tarzda buziladi. Biroq, stek uchun ajratilgan kichik hajmdagi xotira bilan (masalan, mikrokontrollerlar uchun odatiy), qo'ng'iroqlarning oddiy ketma-ketligi etarli bo'lishi mumkin.

Yana bir variant - mahalliy o'zgaruvchilar, ular juda ko'p xotira talab qiladi. Bir million element yoki million mahalliy o'zgaruvchilardan iborat mahalliy massivni boshlash (siz nima bo'lishini hech qachon bilmaysiz) eng yaxshi g'oya emas. Bunday "ochko'z" funktsiyaga bitta qo'ng'iroq ham osongina stekning to'lib ketishiga olib kelishi mumkin. Katta hajmdagi ma'lumotlarni olish uchun dinamik xotira mexanizmlaridan foydalanish yaxshiroqdir, bu sizga uning etishmasligi xatosini qayta ishlashga imkon beradi.

Biroq, dinamik xotira ajratish va ajratish nuqtai nazaridan ancha sekin (chunki operatsion tizim bu haqda g'amxo'rlik qiladi), bundan tashqari, to'g'ridan-to'g'ri kirish bilan siz uni qo'lda ajratishingiz va ajratishingiz kerak. Stekdagi xotira juda tez taqsimlanadi (aslida siz faqat bitta registrning qiymatini o'zgartirishingiz kerak), bundan tashqari, funksiya qaytib kelganda va stek tozalanganda stekga ajratilgan ob'ektlar uchun destruktorlar avtomatik ravishda chaqiriladi. Albatta, darhol stekdan xotira olish istagi paydo bo'ladi. Shuning uchun, to'ldirishning uchinchi usuli - dasturchi tomonidan stekdagi xotirani o'z-o'zidan ajratish. C kutubxonasi bu maqsad uchun maxsus alloca funktsiyasini taqdim etadi. Qizig'i shundaki, agar dinamik xotirani ajratish uchun malloc funksiyasi uni bo'shatish uchun o'zining "egizak"iga ega bo'lsa, alloca funktsiyasida u yo'q - funksiya boshqaruvni qaytargandan so'ng xotira avtomatik ravishda chiqariladi. Ehtimol, bu faqat vaziyatni murakkablashtiradi - axir, funktsiya tugashidan oldin, xotirani bo'shatib bo'lmaydi. Garchi man sahifasiga ko'ra "alloca funktsiyasi mashina va kompilyatorga bog'liq; uni amalga oshirish ko'plab tizimlarda muammoli va noto'g'ri; uni ishlatish juda bema'ni va norozi" - u hali ham qo'llaniladi.

Misollar

Misol sifatida, MSDN-da joylashgan rekursiv fayllarni qidirish kodini ko'rib chiqing:

Void DirSearch(String* sDir) ( urinib koʻring ( // Oʻtkazilgan papkadan pastki papkalarni toping. String* d = Directory::GetDirectories(sDir); int numDirs = d->get_Length(); for (int i= 0 i< numDirs; i++) { // Find all the files in the subfolder. String* f = Directory::GetFiles(d[i],textBox1->matn); int numFiles = f->get_Length(); uchun (int j=0; j< numFiles; j++) { listBox1->Items->Qo'shish(f[j]); ) DirSearch(d[i]); ) ) catch (System::Exception* e) ( MessageBox::Show(e->Message); ) )

Ushbu funktsiya belgilangan katalogdagi fayllar ro'yxatini oladi va keyin o'zini katalog bo'lib chiqqan ro'yxat elementlari uchun chaqiradi. Shunga ko'ra, etarlicha chuqur daraxt uchun fayl tizimi, biz to'g'ri natijaga erishamiz.

"Nima uchun stek to'lib ketishi sodir bo'ladi?" Degan savoldan olingan ikkinchi yondashuvga misol. Stack Overflow deb nomlangan saytdan (sayt shunchaki Stack Overflow emas, balki har qanday dasturlash mavzusi bo'yicha savollar va javoblar to'plamidir):

#define W 1000 #define H 1000 #define MAX 100000 //... int main() ( int image; float dtr; initImg(image,dtr); return 0; )

Ko'rib turganingizdek, asosiy funktsiyada xotira har biri million elementdan iborat int va float tipidagi massivlar uchun stekda ajratilgan, bu jami 8 megabaytdan sal kamroq beradi. Sukut bo'yicha Visual C++ stek uchun atigi 1 megabaytni saqlab qolganini hisobga olsak, javob aniq bo'ladi.

Lightspark Flash Player loyihasining GitHub omboridan olingan misol:

DefineSoundTag::DefineSoundTag(/* ... */) ( // ... unsigned int soundDataLength = h.getLength()-7; unsigned char *tmp = (unsigned char *)alloca(soundDataLength); // .. .)

Umid qilamanki, h.getLength()-7 unchalik katta emas, shuning uchun keyingi qator to'lib ketmaydi. Ammo xotirani ajratishda tejalgan vaqt dasturning "potentsial" ishdan chiqishiga arziydimi?

Natija

Stack overflow - bu ko'pincha rekursiv funktsiyalarni o'z ichiga olgan dasturlarda uchraydigan halokatli xato. Biroq, dasturda bunday funktsiyalar mavjud bo'lmasa ham, mahalliy o'zgaruvchilarning katta hajmi yoki stekda xotirani qo'lda ajratishdagi xato tufayli toshib ketish hali ham mumkin. Barcha klassik qoidalar o'z kuchida qoladi: agar tanlov mavjud bo'lsa, rekursiya o'rniga iteratsiyani afzal ko'rgan ma'qul, shuningdek, kompilyator o'rniga qo'lda ishlamaslik yaxshiroqdir.

Bibliografik ro'yxat

  • E. Tanenbaum. Kompyuter arxitekturasi.
  • Vikipediya. stekning to'lib ketishi.
  • stekning to'lib ketishi. stekning to'lib ketishi C++.

Ushbu kontekstda stek dasturingizning bajarilishi davomida ajratilgan birinchi buferdagi oxirgisidir. Oxirgi, Birinchi (LIFO) degani, siz qo'ygan oxirgi narsa har doim birinchi bo'lib qaytib keladigan narsa bo'ladi - agar siz stekdagi 2 ta elementni "A" va keyin "B" ni bossangiz, stekdan birinchi chiqadigan narsangiz bo'ladi. "B" va keyingi narsa "A" bo'ladi.

Kodingizdagi funktsiyani chaqirganingizda, funktsiya chaqiruvidan keyingi keyingi ko'rsatma stekda va funktsiya chaqiruvi ustiga yozilishi mumkin bo'lgan har qanday xotira maydonida saqlanadi. Tanlangan funksiya o'zining mahalliy o'zgaruvchilari uchun ko'proq stekdan foydalanishi mumkin. Ish tugagach, u foydalangan mahalliy o'zgaruvchilar maydonini bo'shatadi va keyin oldingi funktsiyaga qaytadi.

Stack Overflow

Stack to'lib ketishi - bu stek uchun dasturingiz ishlatishi kerak bo'lganidan ko'ra ko'proq xotira ishlatganingizda. O'rnatilgan tizimlarda siz stek uchun faqat 256 baytga ega bo'lishingiz mumkin va agar har bir funktsiya 32 baytni olsa, u holda siz faqat 4-funktsiyani chaqiruvchi 3-funktsiyani chaqiruvchi chuqur funksiya 1 bilan 2-funktsiyaning 8-funktsiyasiga ega bo'lishingiz mumkin... .kim 9-funktsiyani chaqiruvchi 8-funktsiyani chaqiradi, lekin 9-funktsiya stekdan tashqaridagi xotirani qayta yozadi. Bu xotira, kod va hokazolarni qayta yozishi mumkin.

Ko'pgina dasturchilar bu xatoga yo'l qo'yish uchun A funktsiyasini chaqirishadi, so'ngra u B funktsiyasini chaqiradi, so'ngra C funktsiyasini chaqiradi, so'ngra A funktsiyasini chaqiradi. U ko'pincha ishlashi mumkin, lekin faqat bitta noto'g'ri kiritish uni kompyuterda abadiy aylanaga olib keladi. stek to'lganligini bilib oladi.

Rekursiv funktsiyalar ham bunga sabab bo'ladi, lekin agar siz rekursiv yozayotgan bo'lsangiz (ya'ni, funktsiyangiz o'zini chaqirsa), siz bundan xabardor bo'lishingiz va cheksiz rekursiyani oldini olish uchun statik/global o'zgaruvchilardan foydalanishingiz kerak.

Odatda, siz foydalanadigan OS va dasturlash tili stekni boshqaradi va bu sizning qo'lingizdan kelmaydi. Funktsiya chaqiruvlaringiz qanchalik chuqurligini ko'rish va mo'ljallanmagan tsikllar va rekursiyalarni aniqlash uchun qo'ng'iroqlar grafigiga (har bir funktsiya nima chaqirishini asosiy nuqtadan ko'rsatadigan daraxt tuzilishi) qarashingiz kerak. Qasddan qilingan tsikllar va rekursiyalar, agar ular bir-birini juda ko'p marta chaqirsa, sun'iy ravishda xato tekshirilishi kerak.

Yaxshi dasturlash amaliyotlari, statik va dinamik testlardan tashqari, ushbu yuqori darajadagi tizimlarda siz ko'p narsa qila olmaysiz.

O'rnatilgan tizimlar

O'rnatilgan dunyoda, ayniqsa yuqori ishonchli kodda (avtomobil, aviatsiya, kosmik) siz keng qamrovli tekshiruvlar va kodlarni tekshirishni amalga oshirasiz, lekin siz quyidagilarni ham bajarasiz:

  • Rekursiya va tsikllarni o'chirib qo'ying - siyosat va testlarni amalga oshirish
  • Kod va stekni bir-biridan uzoqroq tuting (kod fleshda, RAMda stek va hech qachon mos kelmaydi)
  • Qo'riqchi tasmasini stackning atrofiga joylashtiring - sehrli raqam bilan to'ldiradigan xotiraning bo'sh maydoni (odatda uzilish tartibi, lekin bu erda ko'p farqlar mavjud) va sekundiga yuzlab yoki minglab marta qo'riqchilar tasmasi bo'lganligiga ishonch hosil qilish uchun qaraysiz. ustiga yozilmagan.
  • Xotirani himoya qilishdan foydalaning (ya'ni, stekda ishlamang, to'g'ridan-to'g'ri stek orqasida o'qimang yoki yozmang)
  • Interruptlar ikkilamchi funktsiyalarni chaqirmaydi - ular bayroqlarni o'rnatadi, ma'lumotlarni nusxalaydi va dasturga ularni qayta ishlashga ruxsat beradi (aks holda siz funktsiya chaqiruvi daraxtida 8 chuqurlikka ega bo'lishingiz, uzilishga ega bo'lishingiz va keyin yana bir nechta funktsiyalardan chiqishingiz mumkin. otishga sabab bo'ladigan xalaqit). Sizda bir nechta chaqiruv daraxtlari mavjud - biri asosiy jarayonlar uchun, biri esa har bir uzilish uchun. Agar sizning interruptlaringiz bir-biringizga xalaqit berishi mumkin bo'lsa ... yaxshi, ajdarlar bor ...

Yuqori darajadagi tillar va tizimlar

Ammo operatsion tizimlarda ishlaydigan yuqori darajadagi tillarda:

  • Mahalliy o'zgaruvchilarni saqlashni kamaytiring (mahalliy o'zgaruvchilar stekda saqlanadi, garchi kompilyatorlar bu borada juda aqlli va ba'zan qo'ng'iroq daraxti kichik bo'lsa, katta qismlarni to'pga qo'yishadi)
  • Rekursiyadan saqlaning yoki jiddiy cheklang
  • Dasturlaringizni kichikroq va kichikroq funktsiyalarga ajratmang - hatto mahalliy o'zgaruvchilarni hisobga olmaganda ham, har bir funktsiya chaqiruvi stekda 64 baytgacha sarflaydi (32 bitli protsessor, protsessor registrlarining yarmini tejash, bayroqlar va boshqalar).
  • Chaqiruv daraxtini sayoz tuting (yuqoridagi tavsifga o'xshash)

Veb-serverlar

Bu sizda mavjud bo'lgan sandboxga bog'liq, siz stekni boshqarishingiz yoki hatto ko'rishingiz mumkinmi. Siz veb-serverlarni boshqa har qanday yuqori darajadagi til va operatsion tizim kabi boshqarishingiz mumkin - bu sizga bog'liq, lekin siz foydalanayotgan til va server stekini tekshiring. Masalan, siz SQL serveringizdagi stekni sindirishingiz mumkin.

“Informix® DataBlade™ API dasturchi qoʻllanmasi”ni yuklab olish mumkin. "Stack maydonini boshqarish" bo'limi foydalanuvchi tomonidan belgilangan funktsiyalarni (UDR) yaratishni tavsiflaydi. Ushbu maqolada qo'shimcha ma'lumotlar va disk raskadrovka bo'yicha maslahatlar mavjud.

Quyidagi ma'lumotlar UDR foydalanuvchi tomonidan aniqlangan virtual protsessorda (VP) yoki VP protsessorda ishlayaptimi, amal qiladi. UDR bajarilgunga qadar ip stekini darhol foydalanuvchi tomonidan belgilangan virtual protsessorga o'tkazish mumkin.

UDR uchun qanday o'lchamdagi stek ajratilgan?

UDR uchun mavjud bo'lgan stek hajmi UDR qanday yaratilganiga bog'liq:

    UDR ga o'zining maxsus stekidan foydalanishga imkon beruvchi STACK modifikatori bilan,

    STACK modifikatorisiz, ya'ni UDR server tomonidan ajratilgan stekni so'ralayotgan ip bilan baham ko'radi. Bu holda stek hajmi onconfig konfiguratsiya faylidagi STACKSIZE parametrining qiymati bilan aniqlanadi.

STACK modifikatori

CREATE PROCEDURE yoki CREATE FUNCTION iboralarida ixtiyoriy STACK modifikatori mavjud bo‘lib, u sizga UDRni bajarish uchun zarur bo‘lgan baytlardagi stek maydoni miqdorini belgilash imkonini beradi.

Agar siz UDR yaratishda STACK modifikatoridan foydalansangiz, server har safar UDR bajarilganda stek maydonini ajratadi va ajratadi. Haqiqiy mavjud o'lcham - bu funktsiya argumentlari soniga qarab, baytlardagi STACK qiymati minus biroz qo'shimcha xarajatlar.

Agar STACK qiymati onconfig faylidagi STACKSIZE parametri qiymatidan kichik bo'lsa (keyingi bo'limga qarang), UDR uchun ajratilgan stek hajmi avtomatik ravishda STACKSIZE qiymatiga yaxlitlanadi.

STACKSIZE konfiguratsiya parametri

Onconfig konfiguratsiya faylida foydalanuvchi iplari uchun standart stek hajmini belgilaydigan STACKSIZE opsiyasi mavjud.

UDR yaratishda STACK ni belgilamasangiz, server ushbu UDRni bajarish uchun qo'shimcha stek maydoni ajratmaydi. Buning o'rniga, UDR so'rovni bajarish uchun ajratilgan stek maydonidan foydalanadi. Mavjud stek hajmi SQL darajasida funktsiyani bajarish uchun qo'shimcha xarajatlarga bog'liq bo'ladi.

Mavzu uchun stek so'rovni bajaradigan ma'lum bir ip uchun bir marta ajratiladi. UDR bitta stekni ip bilan baham ko'rsa, unumdorlik yaxshilanadi, chunki server UDRga har bir qo'ng'iroq uchun qo'shimcha stek ajratish uchun resurslarni behuda sarflamaydi. Boshqa tomondan, agar UDR tomonidan ishlatiladigan stek STACKSIZE ga yaqinlashsa, bu murakkab so'rovning bir qismi sifatida funktsiyani chaqirganda stekning to'lib ketishiga olib kelishi mumkin (bu holda UDR bajarish uchun kamroq stek maydoni mavjud bo'ladi).

Esda tutingki, STACKSIZE ni juda baland o‘rnatmasligingiz kerak, chunki bu barcha foydalanuvchi mavzulariga ta’sir qiladi.

Qachon stek hajmini boshqarish kerak?

YAgar UDR rekursiv qo‘ng‘iroqlarni amalga oshirsa yoki UDR so‘rovlar stekidagi (STACKSIZE) sukut bo‘yicha mavjud bo‘lganidan ko‘proq stek maydonini talab qilsa, siz stek maydonini boshqarishingiz kerak.

UDRni bajarish uchun stekni o'stirishning ikki yo'li mavjud:

    UDR yaratishda STACK modifikatorini belgilang.

    Rekursiv qo'ng'iroqlarni amalga oshirish uchun mi_call() dan foydalaning (misol uchun Informix DataBlade API dasturchi qo'llanmasiga qarang).

Agar siz STACK orqali o'lchamni belgilamasangiz va joriy stekni o'stirish uchun mi_call() dan foydalanmasangiz va UDR juda ko'p stek maydoni talab qiladigan biror narsa qilsa, u holda stek to'lib ketishiga olib keladi.

E'tibor bering, mi_* kabi ba'zi funktsiyalar o'zlarining bajarilishi uchun yangi stek segmentini qo'shadilar. Ushbu segmentlar UDR funksiyasining qo'ng'iroq qiluvchiga qaytganida bo'shatiladi.

Agar biror narsa noto'g'ri bo'lsa, nima qilish kerak?

Stackdan foydalanishni kuzatish

Tomosha qilishdan maqsad stekning to‘lib ketishiga sabab bo‘lgan muayyan UDRni aniqlashdan iborat bo‘lib, siz ushbu aniq UDR uchun STACK qiymatini o‘zgartirishingiz mumkin.

    "onstat -g sts" yordamida stekdan foydalanishni kuzatib boring

    "onstat -g ses session_id" bilan SQL so'rovini bajarayotgan seansni kuzatib boring

Stack to'lib ketishi bilan tugaydigan SQL so'rovini aniqlagandan so'ng, asl so'rovning bir qismi bo'lgan UDR so'rovlarini alohida bajarish orqali stekdan foydalanishni aniqlashingiz kerak.

UDR uchun STACK qiymatini dinamik ravishda o'rnatishingiz mumkin. Masalan:

MyFoo funksiyasini (lvarchar, lvarchar) o'zgartirish (stek qo'shish=131072);

STACK qiymatini o'zgartirgandan so'ng, uning hozir barqaror ekanligiga ishonch hosil qilish uchun asl so'rovni sinab ko'rishingiz kerak.

STACKSIZE ortib bormoqda

Shu bilan bir qatorda, STACKSIZE qiymatini oshirishga harakat qiling. Bu muammoni hal qilganligini tekshiring. (Eski qiymatni keyinroq qaytarishni unutmang).

Agar STACKSIZE hajmini oshirish yordam bermasa, muammo xotira buzilishida bo'lishi mumkin. Bu erda bir nechta takliflar mavjud:

    Xotira yozishni yoqing va xotira hovuzlarini tekshiring. UDR uchun xotira ajratish maqolasining "Nosozliklarni tuzatish muammolari" bo'limida buni qanday qilish kerakligi tushuntirilgan.

    mi_lvarchar dan foydalanishni qayta ko'rib chiqing. Mi_lvarchar argument sifatida null bilan tugatilgan qatorni kutadigan funktsiyaga uzatiladigan joylarga alohida e'tibor qaratish lozim.

    Muammoni tezroq qayta ishlab chiqarish uchun CPU (yoki foydalanuvchi) VP sonini bittaga kamaytiring.

mi_print_stack() -- Solaris

OC Solaris uchun Informix Dynamic Server UDR da chaqirilishi mumkin bo'lgan mi_print_stack() funksiyasini o'z ichiga oladi. Odatiy bo'lib, bu funksiya stek ramkasini quyidagi faylga saqlaydi:

/tmp/default.stack

Chiqish fayli nomini oʻzgartira olmaysiz, lekin DBTEMP muhit oʻzgaruvchisining qiymatini oʻzgartirish orqali uning joylashuvini oʻzgartirishingiz mumkin. $DBTEMP katalogi foydalanuvchi informix tomonidan yozilishi mumkinligiga ishonch hosil qiling. mi_print_stack() ni bajarishda yuzaga keladigan har qanday xatoliklar $MSGPATH da chop etiladi.

Bu xususiyat faqat OC Solaris uchun mavjud.

Lug'at

Ushbu maqolada ishlatiladigan atamalar va qisqartmalar:

UDRFoydalanuvchi tomonidan belgilangan tartib
VPVirtual protsessor

Ushbu maqola har qanday xavfsizlik choralari kompleksi amalga oshirishning barcha bosqichlarini qamrab olishi kerakligini yana bir bor namoyish etadi: ishlab chiqish, joylashtirish, tizimni boshqarish va, albatta, tashkiliy choralar. Axborot tizimlarida xavfsizlikning asosiy tahdidi “inson omili” (shu jumladan foydalanuvchilar) hisoblanadi. Ushbu chora-tadbirlar to'plami oqilona va muvozanatli bo'lishi kerak: bu mantiqqa to'g'ri kelmaydi va himoyani tashkil qilish uchun etarli mablag' ajratilishi dargumon, bu ma'lumotlarning o'zi narxidan oshadi.

Kirish

1C: Enterprise - bu Rossiyada eng keng tarqalgan buxgalteriya tizimi, ammo shunga qaramay, 8.0 versiyasidan oldin uni ishlab chiquvchilar xavfsizlik masalalariga juda kam e'tibor berishgan. Asosan, bu, albatta, mahsulotning narxlari va malakali IT-mutaxassislari bo'lmagan kichik biznesga e'tibor bilan bog'liq edi va xavfsiz tizimni joylashtirish va saqlashning mumkin bo'lgan xarajatlari korxona uchun juda qimmatga tushishi mumkin edi. 8.0 versiyasining chiqarilishi bilan urg'u o'zgarishi kerak edi: echimlar narxi sezilarli darajada oshdi, tizim yanada kengaytiriladigan va moslashuvchan bo'ldi - talablar sezilarli darajada o'zgardi. Tizim etarlicha ishonchli va xavfsiz bo'ldimi - bu juda individual savol. Zamonaviy korxonaning asosiy axborot tizimi kamida quyidagi xavfsizlik talablariga javob berishi kerak:

  • Ichki sabablarga ko'ra tizimning ishdan chiqishi ehtimoli etarlicha past.
  • Ishonchli foydalanuvchi avtorizatsiyasi va ma'lumotlarni noto'g'ri harakatlardan himoya qilish.
  • Foydalanuvchi huquqlarini tayinlashning samarali tizimi.
  • Onlayn zaxiralash va ishlamay qolganda tiklash tizimi.

1C: Enterprise 8.0 ga asoslangan yechimlar ushbu talablarga javob beradimi? Bitta javob yo'q. Kirishni boshqarish tizimidagi sezilarli o'zgarishlarga qaramay, ko'plab hal etilmagan muammolar mavjud. Tizim qanday ishlab chiqilgan va konfiguratsiya qilinganiga qarab, ushbu talablarning barchasi bajarilmasligi yoki uni amalga oshirish uchun etarli darajada bajarilishi mumkin, ammo diqqat qilish kerak (va bu "yoshlik" ning muhim natijasidir. platforma) sanab o'tilgan shartlarga to'liq javob berish uchun siz haqiqatan ham titanik harakatlar qilishingiz kerak.

Ushbu maqola 1C: Enterprise platformasiga asoslangan yechimlarni ishlab chiquvchilar va amalga oshiruvchilar, shuningdek, 1C: Enterprise ishlatiladigan tashkilotlarning tizim ma'murlari uchun mo'ljallangan va tizimning mijoz-server versiyasini ishlab chiqish va sozlashning ba'zi jihatlarini tavsiflaydi. tashkilot nuqtai nazari axborot xavfsizligi. Ushbu maqoladan hujjatlarni almashtirish sifatida foydalanish mumkin emas, faqat unda hali aks ettirilmagan ba'zi fikrlarni ko'rsatadi. Va, albatta, na ushbu maqola, na barcha hujjatlar bir vaqtning o'zida xavfsizlik, ishlash, qulaylik va funksionallikning qarama-qarshi talablariga javob berishi kerak bo'lgan xavfsiz axborot tizimini yaratish muammosining murakkabligini aks ettira olmaydi.

Tasnifi va terminologiyasi

Maqolada ko'rib chiqiladigan asosiy mavzu axborot tahdidlari hisoblanadi.

Axborot tahdidi- ma'lumotlarni ruxsatsiz o'qish, nusxalash, o'zgartirish yoki blokirovka qilish holatlari ehtimoli.

Va ushbu ta'rifga asoslanib, maqolada axborot tahdidlari quyidagicha tasniflanadi:

  • Ma'lumotlarni ruxsatsiz yo'q qilish
  • Ruxsatsiz ma'lumotlarni o'zgartirish
  • Ma'lumotlarni ruxsatsiz nusxalash
  • Ma'lumotlarni ruxsatsiz o'qish
  • Ma'lumotlarga kirish imkonsizligi

Barcha tahdidlar qasddan va qasddan bo'lmaganlarga bo'linadi. Amalga oshirilgan axborot tahdidi chaqiriladi voqea. Tizimning xususiyatlari quyidagilardan iborat:

Zaifliklar- hodisalarga olib keladigan xususiyatlar Himoya choralari- hodisa ehtimolini bloklaydigan xususiyatlar

Asosan, faqatgina 1C: Enterprise 8.0 texnologik platformasidan mijoz-server versiyasida foydalanish bilan bog'liq bo'lgan holatlar ko'rib chiqiladi (bundan buyon matnda 1C yoki 1C 8.0 ma'nosiga zid bo'lmagan hollarda) . Tizimdan foydalanish bilan bog'liq holda biz quyidagi asosiy rollarni belgilaymiz:

  • Operatorlar- ma'lumotlarni ko'rish va o'zgartirish uchun cheklangan dastur roli huquqlariga ega, ammo ma'muriy funktsiyalarga ega bo'lmagan foydalanuvchilar
  • Tizim ma'murlari- tizimda ma'muriy huquqlarga ega bo'lgan foydalanuvchilar, shu jumladan dastur serveri va MS SQL serverining operatsion tizimlarida ma'muriy huquqlar, MS SQL da ma'muriy huquqlar va boshqalar.
  • Axborot xavfsizligi ma'murlari- 1C ma'lumotlar bazasida ma'lum ma'muriy funktsiyalarga ega bo'lgan foydalanuvchilar (masalan, foydalanuvchilarni qo'shish, sinovdan o'tkazish va tuzatish, zaxira nusxasini yaratish, dastur echimini o'rnatish va boshqalar).
  • Tizim ishlab chiquvchilari- amaliy yechim ishlab chiquvchi foydalanuvchilar. Umuman olganda, ular ish tizimiga kirish imkoniga ega bo'lmasligi mumkin.
  • Tizimga bevosita kirish imkoni bo'lmagan shaxslar- 1C-ga kirish huquqi berilmagan, lekin tizimning ishlashiga u yoki bu darajada ta'sir qilishi mumkin bo'lgan foydalanuvchilar (odatda bularning barchasi tizim o'rnatilgan bir xil Active Directory domenining foydalanuvchilari). Ushbu turkum birinchi navbatda tizimdagi potentsial xavfli ob'ektlarni aniqlash uchun ko'rib chiqiladi.
  • Avtomatlashtirilgan ma'muriy skriptlar- muayyan harakatlarni avtomatik ravishda bajarish uchun mo'ljallangan, ma'lum funktsiyalar berilgan dasturlar (masalan, ma'lumotlarni import-eksport qilish)

Bu erda ikkita fikrni ta'kidlash kerak: birinchidan, bu tasnif juda qo'pol va har bir guruh ichidagi bo'linishlarni hisobga olmaydi - bunday bo'linish ba'zi bir aniq holatlar uchun yaratiladi, ikkinchidan, boshqa shaxslarning faoliyatiga ta'sir qila olmaydi deb taxmin qilinadi. 1C dan tashqari vositalar bilan ta'minlanishi kerak bo'lgan tizim.

Har qanday xavfsizlik tizimi fizibilite va egalik narxini hisobga olgan holda ishlab chiqilishi kerak. Umuman olganda, axborot tizimini ishlab chiqish va joriy etishda tizimni himoya qilish narxi quyidagilarga mos kelishi kerak:

  • himoyalangan ma'lumotlarning qiymati;
  • hodisani yaratish xarajatlari (qasddan tahdid qilingan taqdirda);
  • voqea sodir bo'lgan taqdirda moliyaviy xavflar

Himoyani tashkil qilish uning moliyaviy samaradorligini baholashdan ko'ra ancha qimmatga tushishi ma'nosiz va zararli. Axborotni yo'qotish xavfini baholashning bir necha usullari mavjud, ammo ular ushbu maqolada ko'rib chiqilmaydi. Yana bir muhim jihat - axborot xavfsizligi, tizimning ishlashi, tizimdan foydalanish qulayligi va qulayligi, ishlab chiqish va joriy etish tezligi va korxona axborot tizimlariga qo'yiladigan boshqa talablar uchun tez-tez qarama-qarshi talablar muvozanatini saqlashdir.

Tizimning axborot xavfsizligi mexanizmining asosiy xususiyatlari

1C: Enterprise 8.0 ikkita versiyada mavjud: fayl va mijoz-server. Fayl versiyasini quyidagi sabablarga ko'ra tizimning axborot xavfsizligini ta'minlovchi deb hisoblash mumkin emas:

  • Ma'lumotlar va konfiguratsiya tizimning barcha foydalanuvchilari uchun o'qish va yozish uchun mavjud bo'lgan faylda saqlanadi.
  • Quyida ko'rsatilgandek, tizim avtorizatsiyasini chetlab o'tish juda oson.
  • Tizimning yaxlitligi faqat mijoz qismining yadrosi bilan ta'minlanadi.

Mijoz-server versiyasida MS SQL Server ma'lumotlarni saqlash uchun ishlatiladi, bu quyidagilarni ta'minlaydi:

  • Ko'proq xavfsiz ma'lumotlarni saqlash.
  • Fayllarni to'g'ridan-to'g'ri kirishdan ajratib oling.
  • Kengaytirilgan tranzaksiya va qulflash mexanizmlari.

Tizimning fayl va mijoz-server versiyalari o'rtasidagi sezilarli farqlarga qaramay, ular quyidagi xususiyatlarni ta'minlaydigan amaliy yechim darajasida kirishni boshqarishning yagona sxemasiga ega:

  • 1C da ko'rsatilgan parol bilan foydalanuvchi avtorizatsiyasi.
  • Joriy Windows foydalanuvchisi tomonidan foydalanuvchi avtorizatsiyasi.
  • Tizim foydalanuvchilariga rollarni belgilash.
  • Ma'muriy funktsiyalarning bajarilishini rollar bo'yicha cheklash.
  • Mavjud interfeyslarni rollar bo'yicha belgilash.
  • Rollar bo'yicha metadata ob'ektlariga kirishni cheklash.
  • Ob'ektlar tafsilotlariga kirishni rollar bo'yicha cheklash.
  • Ma'lumotlar ob'ektlariga kirishni rollar va seans parametrlari bo'yicha cheklash.
  • Ma'lumotlarga va bajariladigan modullarga interaktiv kirishni cheklash.
  • Ba'zi kodlarni bajarish cheklovlari.

Umuman olganda, foydalaniladigan ma'lumotlarga kirish sxemasi ushbu darajadagi axborot tizimlari uchun juda xosdir. Biroq, uch bosqichli mijoz-server arxitekturasini amalga oshirish bilan bog'liq holda, nisbatan ko'p zaifliklarga olib keladigan bir nechta fundamental jihatlar mavjud:

  1. Ma'lumotlarni qayta ishlashning ko'p sonli bosqichlari va har bir bosqichda ob'ektlarga kirish uchun turli qoidalar qo'llanilishi mumkin.

    Xavfsizlik nuqtai nazaridan ahamiyatli bo'lgan ma'lumotlarni qayta ishlash bosqichlarining biroz soddalashtirilgan diagrammasi 1-rasmda ko'rsatilgan. 1C uchun umumiy qoida bu sxemani pastga siljitganda cheklovlarni kamaytirishdir, shuning uchun ulardan biridagi zaiflikdan foydalanasiz. yuqori darajalar barcha darajadagi tizimni buzishi mumkin.

  2. Darajdan darajaga o'tish paytida uzatilgan ma'lumotlarni boshqarish uchun etarli darajada tuzatilgan protseduralar.

    Afsuski, tizimning barcha ichki mexanizmlari, ayniqsa interaktiv bo'lmagan mexanizmlar uchun ideal tarzda tuzatilgan, ularni tuzatish har doim bir tomondan ko'proq vaqt talab etadi, lekin boshqa tomondan ko'proq mas'uliyatli. Ushbu "kasallik" faqat 1C muammosi emas, u ko'pgina sotuvchilarning ko'plab server mahsulotlarida uchraydi. Faqat keyingi yillarda ushbu muammolarga e'tibor sezilarli darajada oshdi.

  3. Oldingi versiyadan meros bo'lib qolgan ishlab chiquvchilar va tizim ma'murlarining o'rtacha yuqori malakasi etarli emas.

    1C: Enterprise liniyasining mahsulotlari dastlab ishlab chiqish va qo'llab-quvvatlash qulayligiga va kichik tashkilotlarda ishlashga qaratilgan edi, shuning uchun tarixan amaliy echimlarni "ishlab chiquvchilar" va tizimlarning "ma'murlari" ning muhim qismi bunday emasligi ajablanarli emas. ancha murakkab mahsulot, ya'ni 8.0 versiyasi bilan ishlash uchun etarli bilim va ko'nikmalarga ega. Muammo franchayzi kompaniyalarda bu masalaga tizimli ravishda yondashmasdan, mijozlar hisobidan "jangovarda" o'qitish amaliyoti bilan yanada kuchaymoqda. So'nggi bir necha yil ichida bu holat asta-sekin yaxshilanib borayotgani uchun 1C-ga kredit berish kerak: jiddiy franchayzilar xodimlarni yollash va o'qitish muammosiga, 1C-dan axborot texnologiyalarini qo'llab-quvvatlash darajasiga mas'uliyatni oshirishdi. sezilarli darajada oshdi, yuqori darajadagi xizmat ko'rsatishga qaratilgan sertifikatlashtirish dasturlari paydo bo'ldi; ammo vaziyatni darhol tuzatib bo'lmaydi, shuning uchun tizimning xavfsizligini tahlil qilishda bu omilni hisobga olish kerak.

  4. Platformaning nisbatan kichik yoshi.

    Shunga o'xshash yo'nalish va foydalanish maqsadlariga ega bo'lgan mahsulotlar orasida bu eng yosh echimlardan biridir. Platformaning funksionalligi ko'proq yoki kamroq bir yil oldin o'rnatildi. Shu bilan birga, 8.0.10 dan boshlab platformaning har bir versiyasi (bu versiyada tizimning deyarli barcha joriy xususiyatlari amalga oshirilgan) avvalgilariga qaraganda ancha barqaror bo'ldi. Standart qo'llaniladigan yechimlarning funksionalligi hali ham pog'ona va chegaralar bilan o'sib bormoqda, garchi platforma imkoniyatlarining faqat yarmidan foydalanilmoqda. Albatta, bunday sharoitda barqarorlik haqida gapirish o'zboshimchalik bilan bo'lishi mumkin, ammo umuman olganda, 1C 8.0 platformasiga asoslangan echimlar ko'p jihatdan funksionallik va ishlash (va ko'pincha nuqtai nazardan) sezilarli darajada oldinda ekanligini tan olish kerak. barqarorlik) 1C 7.7 platformasida shunga o'xshash echimlar.

Shunday qilib, tizim (va, ehtimol, odatiy dastur echimi) korxonada o'rnatiladi va kompyuterlarga o'rnatiladi. Avvalo, 1C xavfsizlik sozlamasi mantiqiy bo'ladigan muhitni yaratish kerak va buning uchun tizim sozlamalari tizim xavfsizligiga sezilarli ta'sir qiladi degan taxmin amalga oshadigan tarzda sozlanishi kerak.

Xavfsizlikni o'rnatish uchun umumiy qoidalarga rioya qiling.

Xavfsiz tizimlarni yaratishning asosiy tamoyillariga rioya qilinmasa, tizimning axborot xavfsizligi haqida gap bo'lishi mumkin emas. Hech bo'lmaganda quyidagi shartlar bajarilganligiga ishonch hosil qiling:

  • Serverlarga kirish jismoniy cheklangan va ularning uzluksiz ishlashi ta'minlanadi:
    • server uskunasi ishonchlilik talablariga javob beradi, noto'g'ri server uskunasini almashtirish disk raskadrovka qilindi, ayniqsa muhim sohalar uchun (RAID, bir nechta manbalardan quvvat ta'minoti, bir nechta aloqa kanallari va boshqalar) apparatni takrorlash sxemalari qo'llaniladi;
    • serverlar qulflangan xonada joylashgan va bu xona faqat masofadan turib amalga oshirib bo'lmaydigan ish vaqti uchun ochiladi;
    • server xonasini faqat bir yoki ikki kishi ochish huquqiga ega, favqulodda vaziyatlarda mas'ul shaxslarni ogohlantirish tizimi ishlab chiqilgan;
    • serverlarni uzluksiz quvvat bilan ta'minlashni ta'minladi
    • uskunaning normal iqlimiy ish rejimi ta'minlanadi;
    • server xonasida yong'in signalizatsiyasi mavjud, suv toshqini ehtimoli yo'q (ayniqsa, birinchi va oxirgi qavatlar uchun);
  • Korxonaning tarmoq va axborot infratuzilmasi sozlamalari to'g'ri:
    • xavfsizlik devorlari barcha serverlarda o'rnatilgan va sozlangan;
    • barcha foydalanuvchilar va kompyuterlar tarmoqda avtorizatsiya qilingan, parollar etarlicha murakkab va ularni taxmin qilib bo'lmaydi;
    • tizim operatorlari u bilan normal ishlash uchun etarli huquqlarga ega, ammo ma'muriy harakatlar qilish huquqiga ega emas;
    • tarmoqdagi barcha kompyuterlarda virusga qarshi vositalar o'rnatilgan va yoqilgan;
    • foydalanuvchilarning (tarmoq ma'murlaridan tashqari) mijozning ish stantsiyalarida ma'muriy huquqlarga ega bo'lmasligi ma'qul;
    • Internetga va olinadigan saqlash vositalariga kirishni tartibga solish va cheklash kerak;
    • xavfsizlik hodisalarining tizimli auditi sozlanishi kerak;
  • Asosiy tashkiliy masalalar hal qilindi:
    • foydalanuvchilar 1C va apparat bilan ishlash malakasiga ega;
    • foydalanuvchilarga ishlash qoidalarini buzganlik uchun javobgarlik to'g'risida ma'lumot beriladi;
    • axborot tizimining har bir moddiy elementi uchun moliyaviy javobgarlik;
    • barcha tizim bloklari muhrlangan va yopiq;
    • xona tozalovchilar, quruvchilar va elektrchilarning ko'rsatma va nazoratiga alohida e'tibor bering. Ushbu shaxslar tasodifan tizimning vijdonsiz foydalanuvchisi tomonidan qasddan etkazilgan zarar bilan taqqoslanmaydigan zarar etkazishi mumkin.

Diqqat! Ushbu ro'yxat to'liq emas, faqat har qanday juda murakkab va qimmat axborot tizimini joylashtirishda ko'pincha e'tibordan chetda qoladigan narsalarni tasvirlaydi!

  • MS SQL Server, dastur serveri va mijoz qismi turli kompyuterlarda ishlaydi, server ilovalari maxsus yaratilgan Windows foydalanuvchilari huquqlari ostida ishlaydi;
  • MS SQL Server uchun
    • aralash avtorizatsiya rejimi o'rnatilgan
    • Serveradmin roliga kiritilgan MS SQL foydalanuvchilari 1C da qatnashmaydi,
    • har bir IB 1C uchun serverga imtiyozli kirish huquqiga ega bo'lmagan alohida MS SQL foydalanuvchisi yaratilgan,
    • Bitta IB ning MS SQL foydalanuvchisi boshqa IB larga kirish huquqiga ega emas;
  • Foydalanuvchilar dastur serveri va MS SQL server fayllariga bevosita kirish imkoniga ega emaslar
  • Operator ish stantsiyalari Windows 2000/XP bilan jihozlangan (Windows 95/98/Me emas)

Tizim ishlab chiquvchilarining tavsiyalarini va hujjatlarni o'qishni e'tiborsiz qoldirmang. Tizimni o'rnatish bo'yicha muhim materiallar ITS disklarida "Ko'rsatmalar" bo'limida nashr etiladi. Quyidagi maqolalarga alohida e'tibor bering:

  1. 1C: Enterprise serveri bilan ilovalarning ishlash xususiyatlari
  2. Ma'lumotlarni joylashtirish 1C: Enterprise 8.0
  3. Foydalanuvchilar tomonidan 1C: Enterprise 8.0 ni yangilash Microsoft Windows administrator huquqlarisiz
  4. Ma'muriy huquqlarga ega bo'lmagan foydalanuvchi nomidan foydalanuvchilar ro'yxatini tahrirlash
  5. SQL Server 2000 va SQL Server Desktop Engine (MSDE) uchun Windows XP SP2 xavfsizlik devori sozlamalarini sozlash
  6. COM+ Windows XP SP2 parametrlarini 1C: Enterprise 8.0 serveri ishlashi uchun sozlash
  7. 1C: Enterprise 8.0 serverining ishlashi uchun Windows XP SP2 xavfsizlik devori sozlamalarini sozlash
  8. HASP Litsenziya menejeri uchun Windows XP SP2 xavfsizlik devori sozlamalarini sozlash
  9. Zaxira nusxasini yarating axborot bazasi SQL Server 2000 yordamida
  10. 1C: Enterprise 8.0 ni "mijoz-server" versiyasida o'rnatish va sozlash muammolari(eng muhim maqolalardan biri)
  11. Xususiyatlari windows sozlamalari Server 2003 1C: Enterprise 8.0 serverini o'rnatishda
  12. Mijoz-server versiyasida ma'lumotlar bazasiga foydalanuvchi kirishini tartibga solish(eng muhim maqolalardan biri)
  13. Server 1C: Enterprise va SQL Server
  14. "Mijoz-server" versiyasida 1C: Enterprise 8.0 uchun batafsil o'rnatish tartibi(eng muhim maqolalardan biri)
  15. 1C: Enterprise serverida o'rnatilgan tildan foydalanish

Ammo, hujjatlarni o'qiyotganda, olingan ma'lumotlarga tanqidiy munosabatda bo'ling, masalan, "1C: Enterprise 8.0 ni "mijoz-server" versiyasida o'rnatish va sozlash masalalari" maqolasida USER1CV8SERVER foydalanuvchisi uchun talab qilinadigan huquqlar mavjud emas. juda aniq tasvirlangan. Quyidagi ro'yxatga havolalar bo'ladi, masalan, [ITS1] "Ilovalarning 1C: Enterprise serveri bilan ishlashning o'ziga xos xususiyatlari" maqolasini anglatadi. Maqolalarga barcha havolalar ITSning yozish paytidagi so'nggi soniga tegishli (2006 yil yanvar)

Windows avtorizatsiyasi bilan birgalikda foydalanuvchilar uchun avtorizatsiya imkoniyatlaridan foydalaning

Ikki mumkin bo'lgan foydalanuvchi avtorizatsiya usullaridan: o'rnatilgan 1C va Windows OS avtorizatsiyasi bilan birlashtirilgan, agar iloji bo'lsa, siz birlashtirilgan avtorizatsiyani tanlashingiz kerak. Bu foydalanuvchilarga ishda bir nechta parollar bilan adashmaslik imkonini beradi, lekin ayni paytda tizim xavfsizligi darajasini pasaytirmaydi. Biroq, faqat Windows avtorizatsiyasidan foydalanadigan foydalanuvchilar uchun ham parol yaratishda parol o'rnatish juda ma'qul va shundan keyingina ushbu foydalanuvchi uchun 1C avtorizatsiyasini o'chirib qo'ying. Active Directory tuzilmasi yo'q qilingan taqdirda tizimni tiklashni ta'minlash uchun 1C avtorizatsiyasidan foydalangan holda tizimga kirishi mumkin bo'lgan kamida bitta foydalanuvchini qoldirish kerak.

Ilova yechimlari rollarini yaratishda "zaxira" huquqlarini qo'shmang

Har bir dastur yechimi roli ushbu rol tomonidan belgilangan harakatlarni bajarish uchun minimal talab qilinadigan huquqlar to'plamini aks ettirishi kerak. Biroq, ba'zi rollar mustaqil ravishda ishlatilmasligi mumkin. Masalan, interaktiv ishlash uchun tashqi ishlov berish siz alohida rol yaratishingiz va uni tashqi ishlov berishdan foydalanishi kerak bo'lgan barcha foydalanuvchilarga qo'shishingiz mumkin.

Tizim jurnallari va jurnallarini muntazam ravishda ko'rib chiqing

Iloji bo'lsa, tizim faoliyatining jurnallari va protokollarini ko'rib chiqishni tartibga soling va avtomatlashtiring. To'g'ri konfiguratsiya va jurnallarni muntazam ko'rib chiqish (faqat muhim voqealar bo'yicha filtrlangan) bilan siz ruxsatsiz harakatlarni o'z vaqtida aniqlashingiz yoki hatto tayyorgarlik bosqichida ularni oldini olishingiz mumkin.

Mijoz-server versiyasining ba'zi xususiyatlari

Ushbu bo'lim mijoz-server versiyasining ba'zi xususiyatlari va ularning xavfsizlikka ta'sirini tavsiflaydi. O'qish qulayligi uchun quyidagi belgilar qabul qilindi:

Diqqat! zaiflikning tavsifi

Tizimga kirishni nazorat qiluvchi ma'lumotlarni saqlash

IB foydalanuvchilari ro'yxatini saqlash

Ushbu AT foydalanuvchilari ro'yxati va ular uchun mavjud rollar haqidagi barcha ma'lumotlar MS SQL ma'lumotlar bazasidagi Params jadvalida saqlanadi (qarang [ITS2]). Ushbu jadvalning tuzilishi va mazmuniga nazar tashlaydigan bo'lsak, foydalanuvchilar haqidagi barcha ma'lumotlar FileName maydonining qiymati - "users.usr" bilan yozuvda saqlanganligi ayon bo'ladi.

Foydalanuvchilar MS SQL ma'lumotlar bazasiga kirish imkoniga ega emas deb taxmin qilganimiz sababli, bu fakt o'z-o'zidan tajovuzkor tomonidan foydalana olmaydi, ammo agar MS SQL-da kodni bajarish mumkin bo'lsa, bu har qanday (! ) 1C dan kirish. Xuddi shu mexanizm (kichik o'zgarishlar bilan) tizimning fayl versiyasi uchun ishlatilishi mumkin, bu fayl versiyasining o'ziga xos xususiyatlarini hisobga olgan holda, uning xavfsiz tizimlarni yaratishda qo'llanilishini butunlay istisno qiladi.

Tavsiya: Hozirgi vaqtda dasturni bunday o'zgarishlardan to'liq himoya qilishning hech qanday usuli yo'q, MS SQL Server darajasidagi triggerlardan foydalanish bundan mustasno, bu esa, aksincha, platforma versiyasini yangilash yoki foydalanuvchilar ro'yxatini o'zgartirishda muammolarni keltirib chiqarishi mumkin. Bunday o'zgarishlarni kuzatish uchun siz 1C jurnalidan foydalanishingiz mumkin (foydalanuvchini ko'rsatmasdan konfigurator rejimida "shubhali" loginlarga e'tibor berish) yoki SQL Profilerni doimiy ravishda ishlayotganligini (bu tizimning ishlashiga juda salbiy ta'sir qiladi) yoki Ogohlantirishlarni sozlashingiz mumkin. mexanizm (ehtimol, birgalikda triggerlar yordamida)

IB ro'yxati haqidagi ma'lumotlarni serverda saqlash

Har bir 1C dastur serveri uchun ma'lumotlar unga ulangan MS SQL ma'lumotlar bazalari ro'yxatida saqlanadi. Har bir ma'lumot bazasi dastur serveri va MS SQL serveri o'rtasida o'z ulanish qatoridan foydalanadi. Ilova serverida ro'yxatdan o'tgan infobazalar haqidagi ma'lumotlar ulanish satrlari bilan birga katalogdagi serverda joylashgan srvrib.lst faylida saqlanadi.<Общие данные приложений>/1C/1Cv8 (masalan, C:/Hujjatlar va sozlamalar/Barcha foydalanuvchilar/Ilova ma'lumotlari/1C/1Cv8/srvrib.lst). Har bir IB uchun aralash MS SQL avtorizatsiya modelidan foydalanganda MS SQL foydalanuvchisining parolini o'z ichiga olgan to'liq ulanish qatori saqlanadi. Aynan ushbu faylning mavjudligi MS SQL ma'lumotlar bazasiga ruxsatsiz kirishdan qo'rqish imkonini beradi va agar tavsiyalardan farqli o'laroq, kamida bitta ma'lumotlar bazasiga kirish uchun imtiyozli foydalanuvchi (masalan, "sa") ishlatilsa. , keyin bitta IS tahdidiga qo'shimcha ravishda, MS SQL-dan foydalangan holda butun tizimga tahdid mavjud.

Shunisi qiziqki, MS SQL serverida aralash avtorizatsiya va Windows avtorizatsiyasidan foydalanish ushbu faylga kirishda har xil turdagi muammolarga olib keladi. Shunday qilib, Windows avtorizatsiyasining asosiy salbiy xususiyatlari quyidagilar bo'ladi:

  • Ilova serverida va MS SQL serverida barcha axborot xavfsizligini bitta huquqlar to'plami ostida ishlashi (ehtimol keraksiz)
  • 1C dastur serveri jarayonidan (yoki umumiy holatda foydalanuvchi USER1CV8SERVER yoki uning ekvivalentidan) parolni ko'rsatmasdan turib, istalgan axborot xavfsizligiga parol ko'rsatmasdan osongina ulanishingiz mumkin.

Boshqa tomondan, tajovuzkor uchun belgilangan faylni olishdan ko'ra USER1CV8SERVER foydalanuvchi kontekstidan ixtiyoriy kodni bajarishi qiyinroq bo'lishi mumkin. Aytgancha, bunday faylning mavjudligi server funktsiyalarini turli xil kompyuterlarda tarqatish uchun yana bir dalildir.

Tavsiya: srvrib.lst fayli faqat server jarayoni uchun ochiq bo'lishi kerak. Ushbu faylni o'zgartirish uchun auditni sozlashni unutmang.

Afsuski, standart berilgan fayl deyarli o'qishdan himoyalanmagan, bu tizimni joylashtirishda e'tiborga olinishi kerak. Ideal holda, dastur serveri ish vaqtida ushbu faylni o'qish va yozishni (jumladan, ushbu serverda bajariladigan foydalanuvchi ulanishlari orqali o'qish va yozishni) oldini oladi.

Serverda IB yaratishda avtorizatsiyaning yo'qligi

Diqqat! Avtorizatsiya etishmasligi xatosi 1C: Enterprise platformasining 8.0.14 versiyasida tuzatildi. Ushbu nashrda "1C: Enterprise Server Administrator" tushunchasi paydo bo'ldi, ammo serverda ma'murlar ro'yxati ko'rsatilgan ekan, tizim quyida tavsiflanganidek ishlaydi, shuning uchun bu mumkin bo'lgan xususiyat haqida unutmang.

Ehtimol, ushbu bo'limdagi eng katta zaiflik bu dastur serveriga axborot xavfsizligini deyarli cheksiz qo'shish qobiliyatidir, buning natijasida dastur serveriga ulanishga kirish huquqiga ega bo'lgan har qanday foydalanuvchi avtomatik ravishda dasturda o'zboshimchalik kodini ishlatish imkoniyatiga ega bo'ladi. server. Keling, buni bir misol bilan ko'rib chiqaylik.

Tizim quyidagi versiyada o'rnatilishi kerak

  • MS SQL Server 2000 (masalan, tarmoq nomi SRV1)
  • Server 1C: Enterprise 8.0 (tarmoq nomi SRV2)
  • Mijoz tomoni 1C: Enterprise 8.0 (tarmoq nomi WS)

WSda ishlovchi foydalanuvchi (bundan buyon matnda FOYDALANUVCHI) SRV2 da roʻyxatdan oʻtgan IBlardan biriga kamida minimal ruxsatga ega, lekin SRV1 va SRV2 ga imtiyozli kirish huquqiga ega emas deb taxmin qilinadi. Umuman olganda, ro'yxatdagi kompyuterlar tomonidan funktsiyalarning kombinatsiyasi vaziyatga ta'sir qilmaydi. Tizim hujjatlardagi va ITS disklaridagi tavsiyalarni hisobga olgan holda tuzilgan. Vaziyat rasmda ko'rsatilgan. 2.


  • dastur serverida COM+ xavfsizligini faqat 1C foydalanuvchilari dastur serveri jarayoniga ulanish huquqiga ega bo'lishi uchun sozlang (batafsil ma'lumot [ITS12]);
  • srvrib.lst fayli USER1CV8SERVER foydalanuvchisi uchun faqat o'qish uchun bo'lishi kerak (serverga yangi IB qo'shish uchun vaqtincha yozishga ruxsat berish);
  • MS SQL-ga ulanish uchun faqat TCP/IP protokolidan foydalaning, bu holda siz:
    • xavfsizlik devori bilan ulanishni cheklash;
    • "xorijiy" IB 1C ulanishini murakkablashtiradigan nostandart TCP portidan foydalanishni sozlash;
    • dastur serveri va SQL server o'rtasida uzatiladigan ma'lumotlarni shifrlashdan foydalanish;
  • server xavfsizlik devorini uchinchi tomon MS SQL serverlaridan foydalanish imkonsiz bo'lishi uchun sozlash;
  • ruxsatsiz kompyuterning mahalliy tarmoqda paydo bo'lish ehtimolini istisno qilish uchun intranet xavfsizligi vositalaridan foydalanish (IPSec, guruh xavfsizlik siyosati, xavfsizlik devori va boshqalar);
  • hech qanday holatda dastur serverida USER1CV8SERVER foydalanuvchisiga ma'muriy huquqlarni bermang.

Serverda ishlaydigan koddan foydalanish

1C mijoz-server versiyasidan foydalanganda, ishlab chiquvchi kod bajarilishini mijoz va dastur serveri o'rtasida taqsimlashi mumkin. Kod (protsedura yoki funktsiya) faqat serverda bajarilishi uchun uni "Server" xususiyati o'rnatilgan umumiy modulga joylashtirish kerak va agar modul bajarilishiga ruxsat berilgan bo'lsa. nafaqat serverda, kodni "#If Server" cheklangan bo'limiga joylashtiring:

#Agar Server Unda
Funktsiya OnServer(Param1, Param2 = 0) Eksport // Bu funksiya soddaligiga qaramay serverda bajariladi.
Param1 = Param1 + 12;
Param1ni qaytarish;
EndFunctions
#EndIf

Serverda ishlaydigan kodni ishlatganda, quyidagilarni yodda tuting:

  • kod dastur serverida USER1CV8SERVER huquqlari bilan bajariladi (COM ob'ektlari va server fayllari mavjud);
  • barcha foydalanuvchi seanslari xizmatning bitta nusxasi tomonidan boshqariladi, shuning uchun, masalan, serverda stekning to'lib ketishi barcha faol foydalanuvchilarning uzilishiga olib keladi;
  • server modullarini disk raskadrovka qilish qiyin (masalan, tuzatuvchida to'xtash nuqtasini o'rnatolmaysiz), lekin buni qilish kerak;
  • boshqaruvni mijozdan dastur serveriga va aksincha o'tkazish katta hajmdagi uzatiladigan parametrlarga ega bo'lgan muhim resurslarni talab qilishi mumkin;
  • interaktiv vositalardan foydalanish (shakllar, elektron jadval hujjatlari, dialog oynalari), tashqi hisobotlarni va dastur serverida kodni qayta ishlash mumkin emas;
  • global o'zgaruvchilardan ("Eksport" bilan e'lon qilingan dastur moduli o'zgaruvchilari) foydalanishga yo'l qo'yilmaydi;

Tafsilotlar uchun [ITS15] va boshqa ITS maqolalariga qarang.

Ilova serveri ishonchliligi uchun maxsus talablarga javob berishi kerak. To'g'ri qurilgan mijoz-server tizimida quyidagi shartlar bajarilishi kerak:

  • mijoz ilovasining hech qanday harakatlari server ishini to'xtatmasligi kerak (ma'muriy holatlar bundan mustasno);
  • server mijozdan olingan dastur kodini bajara olmaydi;
  • resurslar o'rtasida "adolatli" taqsimlanishi kerak mijoz ulanishlari, joriy ish yukidan qat'iy nazar serverning mavjudligini ta'minlash;
  • ma'lumotlar blokirovkalari mavjud bo'lmaganda, mijoz ulanishlari bir-birining ishiga ta'sir qilmasligi kerak;
  • serverda emas foydalanuvchi interfeysi, lekin monitoring va jurnallar vositalari ishlab chiqilishi kerak;

Umuman olganda, 1C tizimi ushbu talablarga yaqinlashadigan tarzda qurilgan (masalan, serverda tashqi ishlov berishni majburlash mumkin emas), ammo hali ham bir nechta yoqimsiz xususiyatlar mavjud, shuning uchun:

Tavsiya: Back-end bajarilishini loyihalashda minimal interfeys printsipiga rioya qilish tavsiya etiladi. Bular. mijoz ilovasidan server modullariga kirishlar soni juda cheklangan bo'lishi va parametrlar qat'iy tartibga solinishi kerak. Tavsiya: Serverda protseduralar va funktsiyalar parametrlarini qabul qilishda parametrlarni tekshirishni amalga oshirish kerak (parametrlar kutilgan turdagi va qiymatlar oralig'iga mos kelishini tekshirish). Bu standart echimlarda amalga oshirilmaydi, lekin o'z ishlanmalarimizda majburiy tekshirishni joriy qilish juda ma'qul. Tavsiya: Server tomonida so'rovlar matnini (va undan ham ko'proq Run buyrug'ining parametrini) yaratishda, mijoz ilovasidan olingan satrlardan foydalanmang.

Umumiy tavsiya xavfsiz qurilish tamoyillari bilan tanishish bo'ladi veb-ma'lumotlar bazalari uchun ilovalar va shunga o'xshash printsiplar bo'yicha ishlash. O'xshashlik haqiqatan ham sezilarli: birinchidan, veb-ilova kabi, dastur serveri ma'lumotlar bazasi va foydalanuvchi interfeysi o'rtasidagi oraliq qatlamdir (asosiy farq shundaki, veb-server foydalanuvchi interfeysini tashkil qiladi); ikkinchidan, xavfsizlik nuqtai nazaridan siz mijozdan olingan ma'lumotlarga ishonishingiz mumkin emas, chunki tashqi hisobotlarni va qayta ishlashni ishga tushirish mumkin.

O'tish parametrlari

Serverda ishlaydigan funktsiyaga (protseduraga) parametrlarni o'tkazish juda nozik masala. Bu, birinchi navbatda, ularni dastur serveri jarayoni va mijoz o'rtasida o'tkazish zarurati bilan bog'liq. Boshqarish mijoz tomonidan server tomoniga o'tkazilganda, barcha uzatilgan parametrlar ketma-ketlashtiriladi, serverga o'tkaziladi, u erda ular "ochiladi" va ishlatiladi. Server tomondan mijoz tomoniga o'tishda jarayon teskari bo'ladi. Bu erda shuni ta'kidlash kerakki, ushbu sxema mos yozuvlar va qiymatlar bo'yicha o'tish parametrlarini to'g'ri ishlaydi. Parametrlarni o'tkazishda quyidagi cheklovlar qo'llaniladi:

  • Mijoz va server o'rtasida faqat o'zgarmas qiymatlar (ya'ni, qiymatlarini o'zgartirish mumkin bo'lmagan) o'tkazilishi mumkin (ikkala yo'nalishda): ibtidoiy turlar, havolalar, umumiy to'plamlar, tizim ro'yxati qiymatlari, qiymatlarni saqlash. Agar siz boshqa biror narsa yuborishga harakat qilsangiz, mijoz ilovasi ishdan chiqadi (server noto'g'ri parametr yuborishga harakat qilsa ham).
  • Parametrlarni o'tkazishda katta hajmdagi ma'lumotlarni uzatish tavsiya etilmaydi (masalan, 1 milliondan ortiq belgilar satrlari), bu serverning ishlashiga salbiy ta'sir ko'rsatishi mumkin.
  • Siz aylanma havolani o'z ichiga olgan parametrlarni serverdan mijozga va aksincha o'tkaza olmaysiz. Agar siz bunday parametrni o'tkazishga harakat qilsangiz, mijoz ilovasi ishdan chiqadi (server noto'g'ri parametrni yuborishga harakat qilsa ham).
  • Juda murakkab ma'lumotlar to'plamini o'tkazish tavsiya etilmaydi. Agar siz juda katta joylashtirish darajasiga ega parametrni o'tkazishga harakat qilsangiz, server ishdan chiqadi (! ).

Diqqat! Hozirgi vaqtda eng zerikarli xususiyat - bu murakkab qiymatlar to'plamini o'tkazishda xatolikdir. Shunday qilib, masalan, kod: NestingLevel = 1250;
M = Yangi massiv;
PassedParameter = M;
N = 1 uchun Nesting darajasidagi pastadir
MVInt = Yangi massiv;
M.Add(MVInt);
M = MVin;
EndCycle;
ServerFunction (PassedParameter);

Serverning ishdan chiqishiga olib keladi, barcha foydalanuvchilarni uzib qo'yadi va bu boshqaruv 1C kodiga o'tkazilgunga qadar sodir bo'ladi.

Server tomonida xavfli funksiyalardan foydalanish.

Ilova serverida ishlaydigan kodda o'rnatilgan tilning barcha xususiyatlaridan foydalanish mumkin emas, lekin mavjud vositalar orasida ham shartli ravishda quyidagicha tasniflanishi mumkin bo'lgan ko'plab "muammoli" konstruktsiyalar mavjud:

  • konfiguratsiyada mavjud bo'lmagan kodni bajarish qobiliyatini ta'minlashga qodir ("Kodni bajarish" guruhi)
  • mijoz ilovasini fayl haqida ma'lumot bilan ta'minlashga qodir va operatsion tizim foydalanuvchi yoki ma'lumotlar bilan ishlash bilan bog'liq bo'lmagan harakatlarni amalga oshirish ("Huquqlarning buzilishi")
  • server ishdan chiqishiga yoki juda katta resurslardan foydalanishga qodir (Server Failure guruhi)
  • mijozning ishlamay qolishiga olib kelishi mumkin ("Mijoz etishmovchiligi" guruhi) - bu tur hisobga olinmaydi. Misol: serverga o'zgaruvchan qiymatni uzatish.
  • dasturlash algoritmlaridagi xatolar (cheksiz tsikllar, cheksiz rekursiya va boshqalar) ("Dasturlash xatolari")

Menga ma'lum bo'lgan asosiy muammoli konstruktsiyalar (misollar bilan) quyida keltirilgan:

Jarayonni bajarish (<Строка>)

Kodning bajarilishi. String qiymati sifatida unga uzatiladigan kod qismini bajarishga imkon beradi. Serverda foydalanilganda, mijozdan olingan ma'lumotlarni parametr sifatida ishlatmaslikka ehtiyot bo'lish kerak. Masalan, quyidagi foydalanishga ruxsat berilmaydi:

#Agar Server Unda
OnServer (Param1) eksport qilish tartibi
Bajarish (Param1);
EndProcedure
#EndIf

“COMObject” yozing (konstruktor New COMObject(<Имя>, <Имя сервера>))

Ilova serverida (yoki boshqa belgilangan kompyuterda) USER1CV8SERVER sifatida tashqi ilova MAQOMOTI obyektini yaratadi. Serverda foydalanilganda, parametrlar mijoz ilovasidan uzatilmaganligiga ishonch hosil qiling. Biroq, server tomonida ushbu xususiyatdan import qilish / eksport qilish, Internet orqali ma'lumotlarni yuborish, nostandart funktsiyalarni amalga oshirish va hokazolarda samarali foydalanish mumkin.

GetCOMObject(<Имя файла>, <Имя класса COM>)
Huquqlarning buzilishi va kod ijrosi. Avvalgisiga o'xshash, faqat faylga mos keladigan MAQOMOTI ob'ektini olish.
Protseduralar va funksiyalarComputerName(), TempFileDirectory(), ProgramDirectory(), WindowsUsers()
Huquqlarning buzilishi. Ularni serverda bajarish orqali server quyi tizimini tashkil etish tafsilotlarini bilishga ruxsat bering. Serverda foydalanilganda, ma'lumotlar mijozga o'tkazilmasligi yoki tegishli ruxsatisiz operatorlar uchun mavjud emasligiga ishonch hosil qiling. Ma'lumotni mos yozuvlar orqali o'tgan parametrda qaytarib olish mumkinligiga alohida e'tibor bering.
Fayllar bilan ishlash protseduralari va funktsiyalari (CopyFile, FindFiles, MergeFiles va boshqalar), shuningdek, "Fayl" turlari.

Huquqlarning buzilishi. Ular serverda ularni amalga oshirish orqali foydalanuvchi USER1CV8SERVER huquqlari ostida mavjud bo'lgan mahalliy (va tarmoqda joylashgan) fayllarga umumiy ruxsat olish imkonini beradi. Agar ongli ravishda foydalanilsa, serverdagi ma'lumotlarni import/eksport qilish kabi vazifalarni samarali amalga oshirish mumkin.

Ushbu funktsiyalardan foydalanishdan oldin 1C foydalanuvchi huquqlarini tekshirishni unutmang. Foydalanuvchi huquqlarini tekshirish uchun server modulida quyidagi konstruksiyadan foydalanishingiz mumkin:

#Agar Server Unda
Protsedura DoWorkOnFile() eksporti
RolAdministrator = Metadata.Roles.Administrator;
Foydalanuvchi = SessionParameters.CurrentUser;
Agar User.Roles.Contains(RoleAdministrator) bo'lsa, keyin
//Bu yerda fayllar bilan ishlash uchun kod bajariladi
EndIf;
#EndIf

Agar siz ushbu protseduralar va funktsiyalardan foydalansangiz, parametrlarni tekshirib ko'ring, aks holda 1C dastur serveriga tasodifan yoki bila turib tuzatib bo'lmaydigan zarar etkazish xavfi mavjud, masalan, serverda kodni bajarishda:

Yo'l = "C: \ Hujjatlar va sozlamalar \ Barcha foydalanuvchilar \ Ilova ma'lumotlari \ 1C \ 1Cv8 \";
MoveFile(Path + "srvrib.lst", Path + "HereWhereFileGone");

Serverda bunday kodni bajargandan so'ng, agar USER1CV8SERVER foydalanuvchisi yuqorida aytib o'tilganidek, uni o'zgartirish huquqiga ega bo'lsa va server jarayonini qayta ishga tushirgandan so'ng (sukut bo'yicha, barcha foydalanuvchilar tizimdan 3 minut o'tgach), ishga tushirish haqida KATTA savol paydo bo'ladi. server. Ammo fayllarni butunlay o'chirish mumkin ...

"XBase", "BinaryData", "XMLReader", "XMLWriter", "XSLTransformer", "ZipFileWrite", "ZipFileReader", "TextReader", "TextWriter" turlari
Huquqlarning buzilishi. Ular serverda ularni bajarish orqali ma'lum turdagi mahalliy (va tarmoqda joylashgan) fayllarga kirish va ularni USER1CV8SERVER foydalanuvchi huquqlari ostida o'qish / yozish imkonini beradi. Agar ongli ravishda foydalanilsa, serverdagi ma'lumotlarni import / eksport qilish, ba'zi funktsiyalarning ishlashini qayd etish, ma'muriy vazifalarni hal qilish kabi vazifalarni samarali bajarish mumkin. Umuman olganda, tavsiyalar avvalgi xatboshi bilan bir xil, ammo siz ushbu fayllar ma'lumotlarini (lekin barcha turdagi ob'ektlarni emas) mijoz va server qismlari o'rtasida uzatish imkoniyatini ko'rib chiqishingiz kerak.
"Tizim ma'lumotlari" ni kiriting
Huquqlarning buzilishi. Ilovaning mijoz qismiga ma'lumotlarni noto'g'ri ishlatish va uzatishda siz dastur serveri haqida ma'lumot olishingiz mumkin. Foydalanishda foydalanish huquqini cheklash maqsadga muvofiqdir.
"InternetConnection", "InternetMail", "InternetProxy", "HTTPConnection", "FTPCConnection" turlari

Huquqlarning buzilishi. Serverda foydalanilganda, u USER1CV8SERVER huquqlari ostida dastur serveridan masofaviy kompyuterga ulanadi. Tavsiyalar:

  • Usullarni chaqirishda parametrlarni boshqarish.
  • Foydalanuvchi huquqlarini nazorat qilish 1C.
  • USER1CV8SERVER foydalanuvchisining tarmoqqa kirish huquqlariga jiddiy cheklovlar.
  • 1C dastur serverida xavfsizlik devorining to'g'ri konfiguratsiyasi.

To'g'ri foydalanilganda, masalan, dastur serveridan elektron pochtani tarqatishni tashkil qilish qulay.

"InfobaseUsersManager", "InfobaseUser" turlari

Huquqlarning buzilishi. Agar noto'g'ri ishlatilsa (imtiyozli modulda), foydalanuvchilarni qo'shish yoki mavjud foydalanuvchilarning avtorizatsiya parametrlarini o'zgartirish mumkin.

Funktsiya formati

Server xatosi. Ha! Zararsizdek tuyuladigan bu funksiya, agar uning parametrlari serverda boshqarilmasa va bajarilmasa, server ilovasining ishdan chiqishiga olib kelishi mumkin. Xato raqamlarni formatlashda va bosh nollar va ko'p sonli belgilarning chiqish rejimidan foydalanganda o'zini namoyon qiladi, masalan.

Format(1, "HTS=999; FHN=");

Umid qilamanki, ushbu xato platformaning keyingi nashrlarida tuzatiladi, ammo hozircha serverda bajarilishi mumkin bo'lgan ushbu funktsiyaga barcha qo'ng'iroqlarda qo'ng'iroq parametrlarini tekshiring.

Qiymatlarni saqlash uchun protseduralar va funktsiyalar (ValueToStringInt, ValueToFile)
Server xatosi. Bu funksiyalar to'plamlarda aylanali havolalar va juda chuqur joylashtirish bilan ishlamaydi, shuning uchun ular ba'zi juda alohida holatlarda ishdan chiqishi mumkin.

Funktsiyalarda chegara va maxsus parametr qiymatlaridagi xatolar. Amalga oshirish nazorati.

Serverdan foydalanishda duch kelishi mumkin bo'lgan muammolardan biri bu server funktsiyalarining katta "mas'uliyati" (bitta ulanishdagi xatolik va barcha ulanishlar uchun bitta "resurs maydoni" dan foydalanish tufayli butun server ilovasining ishdan chiqishi ehtimoli) . Shunday qilib, asosiy ish vaqti parametrlarini nazorat qilish zarurati:

  • O'rnatilgan til funktsiyalari uchun ularning ishga tushirish parametrlarini tekshiring (asosiy misol "Format" funktsiyasidir)
  • Looplardan foydalanganda, tsikldan chiqish sharti ishga tushirilganligiga ishonch hosil qiling. Agar tsikl potentsial cheksiz bo'lsa, takrorlash sonini sun'iy ravishda cheklang: IterationCountMaxValue = 1000000;
    IterationCount = 1;
    Xayr
    False() ni qaytara olmaydigan funktsiya
    VA (hisoblashlar<МаксимальноеЗначениеСчетчикаИтераций) Цикл

    //.... Loop tanasi
    IterationCount = IterationCount + 1;
    EndCycle;
    Agar IterationCount>IterationCountMaxValue keyin
    //.... haddan tashqari uzoq tsiklning bajarilishi hodisasini boshqarish
    EndIf;

  • Rekursiyadan foydalanganda maksimal joylashtirish darajasini cheklang.
  • So'rovlarni shakllantirish va bajarishda juda uzoq vaqt va katta hajmdagi ma'lumotlarni olishning oldini olishga harakat qiling (masalan, "IN IEARCHY" shartidan foydalanilganda, bo'sh qiymatdan foydalanmang)
  • Axborot bazasini loyihalashda raqamlar uchun etarlicha katta chegarani ta'minlang (aks holda, qo'shish va ko'paytirish kommutativ va assotsiativ bo'lmaydi, bu esa disk raskadrovkani qiyinlashtiradi)
  • Bajariladigan so'rovlarda NULL qiymatlari mavjudligi va NULL yordamida so'rov shartlari va ifodalarining to'g'ri ishlashi uchun operatsiya mantiqini tekshiring.
  • To'plamlardan foydalanganda, ularni dastur serveri va mijoz tomoni o'rtasida o'tkazish mumkinligini nazorat qiling.

Kirishni cheklash uchun mijoz tomoniga terminal kirishidan foydalanish

Terminal serverida mijoz tomoni kodini bajarish orqali ma'lumotlarga kirishni cheklash va ish faoliyatini yaxshilash uchun terminalga kirishdan foydalanish bo'yicha tavsiyalarni ko'rish odatiy hol emas. Ha, to'g'ri sozlanganda, terminalga kirishdan foydalanish haqiqatan ham tizim xavfsizligining umumiy darajasini oshirishi mumkin, ammo, afsuski, ko'pincha amaliy foydalanishda tizim xavfsizligi faqat pasayib ketishi bilan uchrashish mumkin. Keling, bu nima bilan bog'liqligini aniqlashga harakat qilaylik. Endi terminalga kirishni tashkil qilishning ikkita umumiy usuli mavjud, bular Microsoft Terminal Services (RDP protokoli) va Citrix Metaframe Server (ICA protokoli). Umuman olganda, Citrix vositalari kirishni boshqarishning ancha moslashuvchan variantlarini taqdim etadi, ammo bu echimlarning narxi ancha yuqori. Biz faqat xavfsizlikning umumiy darajasini pasaytiradigan ikkala protokol uchun umumiy bo'lgan asosiy xususiyatlarni ko'rib chiqamiz. Terminaldan foydalanishda faqat uchta asosiy xavf mavjud:
  • Haddan tashqari ko'p miqdordagi resurslarni qo'lga kiritish orqali boshqa foydalanuvchilarning ishini bloklash qobiliyati
  • Boshqa foydalanuvchilarning ma'lumotlariga kirish.
  • Terminal serveridan foydalanuvchi kompyuteriga ma'lumotlarni ruxsatsiz nusxalash

Har qanday holatda, Terminal xizmatlari sizga quyidagilarga imkon beradi:

  • Ishning ishonchliligini oshirish (terminal kompyuterda nosozlik bo'lsa, foydalanuvchi keyinchalik o'sha joydan ishlashni davom ettirishi mumkin)
  • Mijoz ilovasi va u saqlaydigan fayllarga kirishni cheklash.
  • Hisoblash yukini foydalanuvchining ish joyidan terminalga kirish serveriga o'tkazing
  • Tizim sozlamalarini markazlashtirilgan tarzda boshqaring. Foydalanuvchilar uchun saqlangan sozlamalar tizimga qaysi kompyuterdan kirganligidan qat'iy nazar amal qiladi.
  • Ba'zi hollarda tizimga masofadan kirish uchun terminal yechimidan foydalanishingiz mumkin.

Bitta foydalanuvchining terminal serveriga mumkin bo'lgan ulanishlar sonini cheklash kerak

1C mijoz ilovasining resurslarga nisbatan "ochko'zligi" tufayli bitta foydalanuvchining (operatorning) terminal serveriga bir vaqtning o'zida ulanishlarining maksimal sonini cheklash zarur. Faol ulanish faqat bitta ilova namunasi bilan 300 MB xotiradan foydalanishi mumkin. Xotiradan tashqari, protsessor vaqti ham faol ishlatiladi, bu ham ushbu server foydalanuvchilari ishining barqarorligiga hissa qo'shmaydi. Server resurslaridan haddan tashqari foydalanishning oldini olish bilan bir vaqtda, bunday cheklash boshqa birovning resurslaridan foydalanishning oldini olishi mumkin hisob. Standart terminal server sozlamalari bilan amalga oshiriladi.

Bitta ulanishda bir yoki ikkitadan ortiq 1C mijoz ilovalarining bir vaqtda ishlashiga ruxsat bermasligingiz kerak

Bu avvalgi xatboshidagi kabi sabablarga ko'ra belgilanadi, ammo uni amalga oshirish texnik jihatdan qiyinroq. Muammo shundaki, 1C ning terminal serveri yordamida qayta ishga tushishiga yo'l qo'ymaslik deyarli mumkin emas (nima uchun quyida tushuntiriladi), shuning uchun siz ushbu xususiyatni dastur yechimlari darajasida amalga oshirishingiz kerak (bu ham yaxshi yechim emas, chunki bo'lishi mumkin. Ilova noto'g'ri tugashi bilan bir muncha vaqt "osilib qolgan" seanslar bo'lsa, dastur moduli va ba'zi kataloglarda dastur yechimini takomillashtirish zarur bo'ladi, bu 1C dan yangilanishlardan foydalanishni qiyinlashtiradi). Ba'zi harakatlarni (masalan, hisobotlarni yaratish) fonda bajarish imkoniyatiga ega bo'lish uchun foydalanuvchiga 2 ta ilovani ishga tushirish qobiliyatini qoldirish juda ma'qul - mijoz ilovasi, afsuski, aslida bitta tarmoqli.

1C-da resurs talab qiladigan hisoblash vazifalarini bajarish huquqiga ega bo'lgan foydalanuvchilarga terminal serveriga kirish huquqini berish yoki boshqa foydalanuvchilarning faol ishi paytida bunday ishga tushirishning oldini olish tavsiya etilmaydi.

Albatta, terminal serveriga kirish huquqini faqat ma'lumotlarni tahlil qilish (ma'lumotlar qazib olish), geografik sxemalar, import/eksport va dasturning mijoz tomonini jiddiy yuklaydigan boshqa vazifalardan foydalanmaydigan foydalanuvchilarga qoldirgan ma'qul. Agar shunga qaramay, bunday vazifalarni hal qilish zarurati tug'ilsa, unda quyidagilar zarur: foydalanuvchini ushbu vazifalar boshqa foydalanuvchilarning ishlashiga ta'sir qilishi mumkinligi haqida xabardor qilish, jurnalga bunday harakatlar boshlanishi va tugashini qayd etish. jarayon, faqat belgilangan vaqtda bajarilishiga ruxsat berish va h.k.

Har bir foydalanuvchi faqat qat'iy belgilangan terminal server kataloglariga yozish huquqiga ega ekanligiga va boshqa foydalanuvchilarning ularga kirish huquqiga ega emasligiga ishonch hosil qilishingiz kerak.

Birinchidan, agar siz umumiy kataloglarga yozish imkoniyatini cheklamasangiz (masalan, 1C o'rnatilgan katalog), u holda tajovuzkor barcha foydalanuvchilar uchun dasturning xatti-harakatlarini o'zgartirish imkoniyatiga ega. Ikkinchidan, bitta foydalanuvchining ma'lumotlari (vaqtinchalik fayllar, hisobot sozlamalarini saqlash fayllari va boshqalar) hech qanday holatda terminal serverining boshqa foydalanuvchisi uchun mavjud bo'lmasligi kerak - umuman olganda, oddiy konfiguratsiya paytida ushbu qoidaga amal qilinadi. Uchinchidan, tajovuzkor qattiq diskda bo'sh joy qolmasligi uchun bo'limni "axlatlash" imkoniyatiga ega. Bilaman, Windows 2000-dan beri Windows-da kvota mexanizmi mavjud, ammo bu juda qimmat mexanizm va men uning haqiqiy ishlatilishini deyarli ko'rmaganman.

Agar kirishni sozlashning oldingi masalalarini amalga oshirish odatda juda oson bo'lsa, foydalanuvchining fayllarga kirishini tartibga solish kabi (ko'rinishidan) oddiy vazifa ahamiyatsiz emas. Birinchidan, agar kvota mexanizmi ishlatilmasa, unda katta fayllarni saqlash mumkin. Ikkinchidan, tizim shunday qurilganki, u faylni boshqa foydalanuvchi uchun mavjud bo'lishi uchun deyarli har doim saqlash mumkin bo'ladi.

Vazifani to'liq hal qilish qiyinligini hisobga olib, ko'pchilik fayl hodisalarini tekshirish tavsiya etiladi

Disk qurilmalari, printerlar va mijoz ish stantsiyasining almashish buferini ulashni (xaritalashni) taqiqlash kerak.

RDP va ICA da disklar, printerlar, terminal kompyuterning almashish bufer kom-portlarini serverga avtomatik ulashni tashkil qilish mumkin. Agar bunday imkoniyat mavjud bo'lsa, terminal serverida begona kodni ishga tushirishni va terminalga kirish mijozida 1C ma'lumotlarini saqlashni taqiqlash deyarli mumkin emas. Bu funksiyalarga faqat maʼmuriy huquqlarga ega odamlarga ruxsat bering.

Terminal serveridan tarmoq fayliga kirish cheklangan bo'lishi kerak.

Agar bu bajarilmasa, foydalanuvchi yana keraksiz kodni ishga tushirishi yoki ma'lumotlarni saqlashi mumkin bo'ladi. Muntazam jurnal fayl hodisalarini kuzatib bormaganligi sababli (Aytgancha, platforma ishlab chiquvchilari amalga oshirishi uchun yaxshi g'oya) va butun tarmoq bo'ylab tizim auditini o'rnatish deyarli mumkin emas (uni saqlash uchun resurslar etarli emas), u foydalanuvchi ma'lumotlarni yuborishi yoki chop etishi yoki elektron pochta orqali yuborishi yaxshiroqdir. Terminal serveri to'g'ridan-to'g'ri foydalanuvchi olinadigan media bilan ishlamasligiga alohida e'tibor bering.

Hech qanday holatda, xavfsiz tizimni yaratishda siz dastur serverini terminal serverida qoldirmasligingiz kerak.

Agar dastur serveri mijoz ilovalari bilan bir xil kompyuterda ishlayotgan bo'lsa, uning normal ishlashini buzish uchun juda ko'p imkoniyatlar mavjud. Agar biron sababga ko'ra terminal serveri va dastur serveri funktsiyalarini ajratishning iloji bo'lmasa, u holda dastur serveri tomonidan ishlatiladigan fayllarga foydalanuvchi kirishiga alohida e'tibor bering.

Terminal serverida 1C: Enterprise-dan tashqari barcha ilovalarni ishga tushirish imkoniyatini istisno qilish kerak.

Bu amalga oshirish eng qiyin istaklardan biridir. Keling, domenda guruh xavfsizligi siyosatini to'g'ri sozlash zarurligidan boshlaylik. Barcha "Ma'muriy shablonlar" va "Dasturiy ta'minotni cheklash siyosati" to'g'ri sozlangan bo'lishi kerak. O'zingizni sinab ko'rish uchun kamida quyidagi variantlar o'chirilganligiga ishonch hosil qiling:

Ushbu talabni amalga oshirishning murakkabligi ko'pincha terminal serverida "qo'shimcha" 1C seansini ishga tushirish imkoniyatiga olib keladi (boshqa ilovalar cheklangan bo'lsa ham, Windows-dan foydalangan holda 1C-ni ishga tushirishni taqiqlash mumkin emas).

Muntazam ro'yxatga olish jurnalining cheklovlarini ko'rib chiqing (barcha foydalanuvchilar dasturdan bitta kompyuterdan foydalanadilar)

Shubhasiz, foydalanuvchilar 1C-ni terminal rejimida ochganligi sababli, u ro'yxatga olish jurnalida qayd etiladigan terminal serveridir. Foydalanuvchi qaysi kompyuterdan ulanganligi haqida ro'yxatga olish jurnali xabar bermaydi.

Terminal serveri - himoya yoki zaiflikmi?

Shunday qilib, terminallar shimolining asosiy xususiyatlarini ko'rib chiqqandan so'ng, terminallarning shimoliy qismi hisoblash yukini taqsimlashni avtomatlashtirishga yordam berishi mumkinligini aytishimiz mumkin, ammo xavfsiz tizimni qurish juda qiyin. Terminal serveridan foydalanishning eng samarali holatlaridan biri cheklangan funksionallik va ixtisoslashtirilgan interfeysga ega foydalanuvchilar uchun to'liq ekran rejimida Windows Explorersiz 1C-ni ishga tushirishdir.

Mijoz tomoni ish

Internet Explorer (IE) dan foydalanish

1C mijoz qismining normal ishlashi uchun shartlardan biri komponentlardan foydalanish hisoblanadi Internet Explorer. Ushbu komponentlar bilan juda ehtiyot bo'lishingiz kerak.

Diqqat! Birinchidan, agar IE ga josuslik dasturlari yoki reklama dasturlari moduli "biriktirilgan" bo'lsa, u 1C-da har qanday HTML-fayllar ko'rilgan bo'lsa ham yuklanadi. Hozircha men ushbu xususiyatdan ongli ravishda foydalanishni ko'rmadim, lekin tashkilotlardan birida 1C ishlayotganida pornografik tarmoqlardan birining yuklangan "josus" modulini ko'rdim (antivirus dasturi yangilanmagan, belgilari topilgan: xavfsizlik devorini o'rnatishda 1C 80-portda porno saytga ulanishga harakat qilayotgani aniq edi). Aslida, bu himoya har tomonlama bo'lishi kerakligi haqidagi yana bir dalil.

Diqqat! Ikkinchidan, 1C tizimi flesh-filmlar, ActiveX ob'ektlari, ko'rsatilgan HTML hujjatlarida VBScript-dan foydalanishga, Internetga ma'lumotlarni yuborishga, hatto PDF-fayllarni ochishga imkon beradi (!), To'g'ri, ikkinchi holatda u "ochish yoki saqlash" ni so'raydi .. Umuman olganda, yuragingiz nimani xohlasa. O'rnatilgan HTML ko'rish va tahrirlash qobiliyatidan to'liq oqilona foydalanishga misol:

  • Yangi HTML hujjat yarating (Fayl -> Yangi -> HTML hujjat).
  • Bo'sh hujjatning "Matn" yorlig'iga o'ting.
  • Matnni o'chirish (to'liq).
  • Ushbu hujjatning "Ko'rish" yorlig'iga o'ting
  • Drag-n-drop-dan foydalanib, SWF kengaytmali faylni (bu flesh-film fayllari) ochiq tadqiqotchidan hujjat oynasiga, masalan, brauzer keshidan ko'chiring, garchi bu FLASH o'yinchog'i bilan qiziqarli bo'lsa ham.
  • Naqadar jozibador! 1C da siz o'yinchoq yugurishingiz mumkin!

Tizim xavfsizligi nuqtai nazaridan, bu mutlaqo noto'g'ri. Hozircha men ushbu zaiflik orqali 1C-ga maxsus hujumlarni ko'rmadim, lekin bu vaqt va sizning ma'lumotlaringizning qiymati bo'lishi mumkin.

HTML hujjatidagi maydon bilan ishlashda paydo bo'ladigan boshqa kichik nuqtalar ham bor, lekin sanab o'tilgan ikkitasi asosiy hisoblanadi. Garchi, agar siz ushbu xususiyatlarga ijodiy yondashsangiz, 1C bilan ishlash uchun chinakam ajoyib interfeys imkoniyatlarini tashkil qilishingiz mumkin.

Tashqi hisobotlardan foydalanish va qayta ishlash.

Diqqat! Tashqi hisobotlar va qayta ishlash - bir tomondan - qulay usul qo'shimcha bosma shakllarni, normativ hisobotlarni, ixtisoslashtirilgan hisobotlarni amalga oshirish, boshqa tomondan, ko'plab tizim xavfsizligi cheklovlarini chetlab o'tish va dastur serverini buzishning potentsial usuli (masalan, yuqoridagi "Parametrlarni o'tkazish" bo'limiga qarang). 1C tizimi "Tashqi ishlov berishning interaktiv ochilishi" rolining huquqlari to'plamida maxsus parametrga ega, ammo bu muammoni to'liq bartaraf etmaydi - to'liq hal qilish uchun boshqarish mumkin bo'lgan foydalanuvchilar doirasini qisqartirish kerak. tashqi chop etish shakllari, muntazam hisobotlar va tashqi ishlov berish yordamida amalga oshirilgan standart echimlarning boshqa muntazam xususiyatlari. Masalan, SCPda sukut bo'yicha barcha asosiy foydalanuvchi rollari qo'shimcha bosib chiqarish shakllari katalogi bilan ishlash imkoniyatiga ega va bu, aslida, har qanday tashqi ishlov berishdan foydalanish qobiliyatidir.

Standart echimlar va platformaning standart mexanizmlaridan foydalanish (ma'lumotlar almashinuvi)

Standart mexanizmlarning ba'zilari potentsial xavfli va juda kutilmagan tarzda.

Roʻyxatlarni chop etish

Tizimdagi har qanday ro'yxat (masalan, katalog yoki ma'lumotlar reestri) chop etilishi yoki faylga saqlanishi mumkin. Buning uchun kontekst menyusi va "Amallar" menyusida mavjud bo'lgan standart xususiyatdan foydalanish kifoya:

Shuni yodda tutingki, foydalanuvchi ro'yxatlarda ko'rgan deyarli hamma narsa tashqi fayllarga chiqarilishi mumkin. Tavsiya qilinishi mumkin bo'lgan yagona narsa - bosma serverlarda hujjatlarni chop etish protokolini saqlashdir. Ayniqsa muhim shakllar uchun himoyalangan jadval maydoni bilan bog'langan harakatlar panelini sozlash kerak, shunda ro'yxatni ko'rsatish imkoniyati ushbu panelda mavjud emas va kontekst menyusini o'chirib qo'ying (6-rasmga qarang).

Tarqalgan ma'lumotlar bazasida ma'lumotlar almashinuvi

Ma'lumotlar almashinuvi formati juda oddiy va hujjatlarda tasvirlangan. Agar foydalanuvchi bir nechta fayllarni almashtirish imkoniyatiga ega bo'lsa, u tizimga ruxsatsiz o'zgartirishlar kiritishi mumkin (garchi bu vazifa juda mashaqqatli bo'lsa ham). Tarqalgan ma'lumotlar bazasini almashish rejalaridan foydalanganda chekka ma'lumotlar bazasini yaratish qobiliyati oddiy operatorlar uchun mavjud bo'lmasligi kerak.

Standart XML ma'lumotlar almashinuvi

Oddiy konfiguratsiyalar (masalan, "Savdoni boshqarish" va "Korxona hisobi") o'rtasida almashinuv uchun foydalaniladigan standart ma'lumotlar almashinuvida almashinuv qoidalarida ob'ektni yuklash va tushirish hodisalarini qayta ishlash vositalarini ko'rsatish mumkin. Bu fayldan ishlov beruvchini olish va faylni yuklash va tushirishni standart qayta ishlashning "Execute()" protsedurasi orqali amalga oshiriladi (mijoz tomonida "Execute()" protsedurasi ishga tushiriladi). Shubhasiz, zararli harakatlarni amalga oshiradigan bunday soxta almashinuv faylini yaratish qiyin emas. Ko'pgina umumiy yechim foydalanuvchi rollari uchun ulashish sukut bo'yicha yoqilgan.

Tavsiya: ko'pchilik foydalanuvchilar uchun XML almashinuviga kirishni cheklash (faqat axborot xavfsizligi ma'murlariga qoldiring). Ushbu qayta ishlashni ishga tushirish jurnallarini saqlang, masalan, uni yuborish orqali almashinuv faylini saqlang elektron pochta Yuklab olishdan oldin IS administratori.

Umumiy hisobotlardan, ayniqsa hisobot konsolidan foydalanish

Yana bir muammo - foydalanuvchining umumiy hisobotlarga, ayniqsa Reports Console hisobotiga sukut bo'yicha kirishi. Ushbu hisobot deyarli har qanday axborot xavfsizligi so'rovlarini bajarishga imkon berishi bilan tavsiflanadi va 1C huquqlar tizimi (jumladan, RLS) juda qattiq o'rnatilgan bo'lsa ham, foydalanuvchiga juda ko'p "keraksiz" ma'lumotlarni olish imkonini beradi. serverni barcha resurslar tizimlarini oladigan bunday so'rovni bajarishga majburlash.

To'liq ekran rejimidan foydalanish (ish stoli rejimi)

Dasturning funksional imkoniyatlaridan cheklangan ixtisoslashtirilgan interfeyslarni tashkil qilishning samarali usullaridan biri bu foydalaniladigan interfeysning asosiy (va ehtimol yagona) shaklining to‘liq ekranli rejimidir. Shu bilan birga, kirish imkoniyati bilan bog'liq muammolar mavjud emas, masalan, "Fayl" menyusi va foydalanuvchining barcha harakatlari ishlatiladigan shaklning imkoniyatlari bilan cheklangan. Tafsilotlar uchun ITS diskidagi "Ish stoli rejimini amalga oshirish xususiyatlari" ga qarang.

Zaxira

1C mijoz-server versiyasi uchun zaxira nusxasini ikki usulda amalga oshirish mumkin: dt kengaytmali faylga ma'lumotlarni yuklash va SQL yordamida zaxira nusxalarini yaratish. Birinchi usul juda ko'p kamchiliklarga ega: eksklyuziv kirish talab qilinadi, nusxani yaratishning o'zi ancha uzoq davom etadi, ba'zi hollarda (agar IS tuzilmasi buzilgan bo'lsa) arxiv yaratish mumkin emas, lekin bitta afzallik bor - minimal o'lcham arxivdan. SQL-ning zaxira nusxasi uchun buning aksi bo'ladi: nusxa SQL-server yordamida fonda yaratiladi, oddiy tuzilish va siqishni yo'qligi sababli, bu juda tez jarayon va SQL ma'lumotlar bazasining jismoniy yaxlitligi mavjud bo'lganda. buzilmagan, zahira nusxasi amalga oshiriladi, lekin nusxaning o'lchami kengaytirilgan holatda IBning haqiqiy hajmi bilan bir xil bo'ladi (siqishni amalga oshirilmaydi). MS SQL zaxira tizimining qo'shimcha afzalliklari tufayli undan foydalanish maqsadga muvofiqdir (3 turdagi zahiraga ruxsat beriladi: to'liq, differentsial, tranzaktsiyalar jurnalining nusxasi; muntazam ravishda bajariladigan vazifalarni yaratish mumkin; zaxira nusxasi va zaxira tizimi tezda ishga tushiriladi; kerakli disk maydoni hajmini taxmin qilish qobiliyati va boshqalar). Tizim xavfsizligi nuqtai nazaridan zaxiralashni tashkil etishning asosiy nuqtalari:

  • Zaxira nusxalarini foydalanuvchilar uchun mavjud bo'lmaydigan tarzda saqlash uchun joy tanlash zarurati.
  • Zaxira nusxalarini MS SQL serveridan jismoniy masofada saqlash zarurati (tabiiy ofatlar, yong'inlar, hujumlar va hk.)
  • Zaxira nusxalariga kirish huquqiga ega bo'lmagan foydalanuvchiga zaxiralashni boshlash huquqini berish imkoniyati.

Qo'shimcha ma'lumot uchun MS SQL hujjatlariga qarang.

Ma'lumotlarni shifrlash

Ma'lumotlarni ruxsatsiz kirishdan himoya qilish uchun ko'pincha turli xil kriptografik vositalar (dasturiy ta'minot va apparat) qo'llaniladi, ammo ularning maqsadga muvofiqligi ko'p jihatdan to'g'ri qo'llanilishiga va tizimning umumiy xavfsizligiga bog'liq. Biz eng keng tarqalgan vositalardan foydalangan holda ma'lumotlarni uzatish va saqlashning turli bosqichlarida ma'lumotlarni shifrlashni va kriptografik vositalar yordamida tizimni loyihalashning asosiy xatolarini ko'rib chiqamiz.

Himoya qilinishi mumkin bo'lgan axborotni qayta ishlashning bir necha asosiy bosqichlari mavjud:

  • Tizimning mijoz qismi va dastur serveri o'rtasida ma'lumotlarni uzatish
  • Ilova serveri va MS SQL Server o'rtasida ma'lumotlarni uzatish
  • MS SQL Serverda saqlanadigan ma'lumotlar (fizik diskdagi ma'lumotlar fayllari)
  • IBda saqlangan ma'lumotlarni shifrlash
  • Tashqi ma'lumotlar (axborot xavfsizligi bilan bog'liq)

Mijoz tomonida va dastur serverida saqlangan ma'lumotlar uchun (saqlangan foydalanuvchi sozlamalari, IB ro'yxati va boshqalar) shifrlash juda kamdan-kam hollarda oqlanadi va shuning uchun bu erda hisobga olinmaydi. Kriptografik vositalardan foydalanganda, ulardan foydalanish butun tizimning ish faoliyatini sezilarli darajada kamaytirishi mumkinligini unutmaslik kerak.

TCP / IP protokolidan foydalanishda tarmoq ulanishlarini kriptografik himoya qilish haqida umumiy ma'lumot.

Himoyasiz barcha tarmoq ulanishlari ruxsatsiz kuzatuv va kirishga qarshi himoyasiz. Ularni himoya qilish uchun siz tarmoq protokoli darajasida ma'lumotlarni shifrlashdan foydalanishingiz mumkin. Mahalliy tarmoqda uzatiladigan ma'lumotlarni shifrlash uchun ko'pincha operatsion tizim tomonidan taqdim etilgan IPSec vositalari qo'llaniladi.

IPSec vositalari DES va 3DES algoritmlari yordamida uzatilgan ma'lumotlarni shifrlashni, shuningdek, MD5 yoki SHA1 xesh funksiyalari yordamida yaxlitlikni tekshirishni ta'minlaydi. IPSec ikki rejimda ishlashi mumkin: transport rejimi va tunnel rejimi. Transport rejimi mahalliy tarmoqdagi ulanishlarni ta'minlash uchun yaxshiroqdir. Tunnel rejimi alohida tarmoq segmentlari o'rtasida VPN ulanishlarini tashkil qilish yoki ochiq ma'lumot kanallari orqali mahalliy tarmoqqa masofaviy ulanishni himoya qilish uchun ishlatilishi mumkin.

Ushbu yondashuvning asosiy afzalliklari quyidagilardan iborat:

  • Active Directory vositalaridan foydalangan holda xavfsizlikni markaziy boshqarish imkoniyati.
  • Ilova serveriga va MS SQL serveriga ruxsatsiz ulanishlarni istisno qilish imkoniyati (masalan, dastur serveriga axborot xavfsizligini ruxsatsiz qo'shilishidan himoya qilish mumkin).
  • Istisno tarmoq trafigini "tinglash".
  • Amaliy dasturlarning xatti-harakatlarini o'zgartirishga hojat yo'q (bu holda, 1C).
  • Bunday yechimning standarti.

Biroq, bu yondashuv cheklovlar va kamchiliklarga ega:

  • IPSec to'g'ridan-to'g'ri manba va maqsadli kompyuterlarda ma'lumotlarni buzish va tinglashdan himoya qilmaydi.
  • Tarmoq orqali uzatiladigan ma'lumotlar miqdori IPSec-dan foydalanmasdan ko'ra biroz kattaroqdir.
  • IPSec-dan foydalanganda markaziy protsessorga yuk biroz yuqoriroq bo'ladi.

IPSec dasturini amalga oshirishning batafsil tavsifi ushbu maqola doirasidan tashqarida va IP protokolining asosiy tamoyillarini tushunishni talab qiladi. Ulanish xavfsizligini to'g'ri sozlash uchun tegishli hujjatlarni o'qing.

VPN ulanishlarini tashkil qilishda 1C bilan litsenziya shartnomasining bir nechta jihatlarini alohida ta'kidlash kerak. Gap shundaki, texnik cheklovlar yo'qligiga qaramay, mahalliy tarmoqning bir nechta segmentlarini ulashda yoki bitta kompyuterni mahalliy tarmoqqa masofadan kirishda odatda bir nechta asosiy materiallar talab qilinadi.

Tizimning mijoz qismi va dastur serveri o'rtasida uzatish paytida ma'lumotlarni shifrlash.

Tarmoq protokoli darajasida shifrlashdan tashqari, COM+ protokoli darajasida ma'lumotlarni shifrlash mumkin, bu haqda ITSning "Mijoz-server versiyasida foydalanuvchining infobazaga kirishini tartibga solish" maqolasida aytib o'tilgan. Uni amalga oshirish uchun "Paket maxfiyligi" ga qo'ng'iroqlar uchun autentifikatsiya darajasini o'rnatish uchun 1CV8 ilovasi uchun "Komponent xizmatlari" ni o'rnatishingiz kerak. Ushbu rejim o'rnatilganda, paket autentifikatsiya qilinadi va shifrlanadi, shu jumladan ma'lumotlar, jo'natuvchining identifikatori va imzosi.

Ilova serveri va MS SQL Server o'rtasida uzatish paytida ma'lumotlarni shifrlash

MS SQL Server ma'lumotlarni shifrlash uchun quyidagi vositalarni taqdim etadi:

  • Ilova serveri va MS SQL Server o'rtasida ma'lumotlarni uzatishda Secure Sockets Layer (SSL) dan foydalanish mumkin.
  • Multiprotocol tarmoq kutubxonasidan foydalanganda ma'lumotlarni shifrlash RPC darajasida qo'llaniladi. Bu SSL-ga qaraganda zaifroq shifrlash.
  • Agar umumiy xotira almashinuvi protokoli ishlatilsa (bu dastur serveri va MS SQL Server bitta kompyuterda joylashgan bo'lsa), hech qanday holatda shifrlash ishlatilmaydi.

Muayyan MS SQL serveri uchun barcha uzatilgan ma'lumotlarni shifrlash zarurligini belgilash uchun "Server Network Utility" yordam dasturidan foydalaning. Uni ishga tushiring va "Umumiy" yorlig'ida "Protokolni shifrlashni majburlash" katagiga belgi qo'ying. Shifrlash usuli mijoz ilovasi (ya'ni, 1C dastur serveri) tomonidan ishlatiladiganiga qarab tanlanadi. SSL-dan foydalanish uchun siz tarmog'ingizda sertifikat berish xizmatini to'g'ri sozlashingiz kerak.

Muayyan dastur serveri uchun barcha uzatilgan ma'lumotlarni shifrlash zaruratini belgilash uchun siz "Client Network Utility" yordam dasturidan foydalanishingiz kerak (odatda "C:\WINNT\system32\cliconfg.exe" da joylashgan). Oldingi holatda bo'lgani kabi, "Umumiy" yorlig'ida "Protokolni shifrlashni majburlash" katagiga belgi qo'ying.

Shuni yodda tutish kerakki, bu holda shifrlashdan foydalanish tizimning ishlashiga sezilarli ta'sir ko'rsatishi mumkin, ayniqsa katta hajmdagi ma'lumotlarni qaytaradigan so'rovlardan foydalanilganda.

TCP/IP protokolidan foydalanganda dastur serveri va MS SQL Server o'rtasidagi aloqani to'liqroq ta'minlash uchun standart sozlamalarga bir nechta o'zgartirishlarni tavsiya qilishimiz mumkin.

Birinchidan, siz standart portdan boshqa portni o'rnatishingiz mumkin (1433 port sukut bo'yicha ishlatiladi). Agar siz ma'lumot almashish uchun nostandart TCP portidan foydalanishga qaror qilsangiz, quyidagilarni e'tiborga oling:

  • MS SQL Server va Application Server bir xil portdan foydalanishi kerak.
  • Faervollardan foydalanganda ushbu portga ruxsat berilishi kerak.
  • MS SQL serveridagi boshqa ilovalar tomonidan ishlatilishi mumkin bo'lgan portni o'rnatib bo'lmaydi. Malumot uchun http://www.ise.edu/in-notes/iana/assignments/port-numbers ga qarang (manzil SQL Server Books Online-dan olingan).
  • MS SQL Server xizmatining bir nechta nusxalarini ishlatganda, konfiguratsiya uchun MS SQL hujjatlarini (“Tarmoq ulanishlarini sozlash” bo'limi) o'qib chiqing.

Ikkinchidan, MS SQL serveridagi TCP/IP protokoli sozlamalarida siz "Serverni yashirish" katagiga belgi qo'yishingiz mumkin, bu MS SQL Server xizmatining ushbu namunasiga translyatsiya so'rovlariga javob berishni taqiqlaydi.

Diskda saqlangan MS SQL ma'lumotlarini shifrlash

Mahalliy diskda joylashgan ma'lumotlarni shifrlash uchun dasturiy ta'minot va apparat vositalarining juda katta tanlovi mavjud (bu Windows-ning EFS-dan foydalanishning muntazam qobiliyati va eToken kalitlari va Jetico Bestcrypt yoki PGPDisk kabi uchinchi tomon dasturlari). Ushbu vositalar bajaradigan asosiy vazifalardan biri media yo'qolganda (masalan, server o'g'irlanganda) ma'lumotlarni himoya qilishdir. Shuni alohida ta'kidlash kerakki, Microsoft MS SQL ma'lumotlar bazalarini shifrlangan muhitda saqlashni tavsiya etmaydi va bu juda oqlanadi. Bu holatda asosiy muammo ishlashning sezilarli pasayishi va mumkin bo'lgan muammolar muvaffaqiyatsizlik ishonchliligi. Tizim ma'murining hayotini murakkablashtiradigan ikkinchi omil - bu MS SQL xizmati tomonidan birinchi marta kirish paytida ma'lumotlar bazasining barcha fayllari mavjud bo'lishini ta'minlash zarurati (ya'ni shifrlangan muhitda interaktiv harakatlarni istisno qilish tavsiya etiladi. ulanadi).

Tizim unumdorligi sezilarli darajada pasayishiga yo'l qo'ymaslik uchun siz MS SQL-ning bir nechta fayllarda ma'lumotlar bazalarini yaratish qobiliyatidan foydalanishingiz mumkin. Albatta, bu holda, MS SQL ma'lumotlar bazasi ma'lumotlar bazasini yaratishda 1C serveri tomonidan yaratilmasligi kerak, lekin alohida yaratilishi kerak. Quyida sharhlar bilan TSQL-dagi misol skripti keltirilgan:

USEmaster
BOSH
-- SomeData ma'lumotlar bazasini yaratish,
Ma'lumotlar bazasini yaratish SomeData
-- butun ma'lumotlari PRIMARY fayl guruhida joylashgan.
ASOSIY
-- Asosiy ma'lumotlar fayli shifrlangan muhitda joylashgan (mantiqiy disk E :)
-- va boshlang'ich hajmi 100 MB bo'lib, avtomatik ravishda 200 MB ga ko'paytirilishi mumkin
-- qadam 20 Mb
(NAME = SomeData1,
FILENAME = "E:\SomeData1.mdf",
Hajmi = 100 MB,
MAXSIZE=200
FILEGROWTH=2),
-- Ikkinchi ma'lumotlar fayli shifrlanmagan muhitda joylashgan (mantiqiy disk C :)
-- va 100 MB boshlang'ich hajmiga ega, avtomatik ravishda chegaraga ko'tarilishi mumkin
-- joriy fayl hajmining 5% ga oshib, disk maydoni (64 KB gacha yaxlitlangan)
(NAME = SomeData2,
FILENAME = "c:\dastur fayllari\microsoft sql server\mssql\data\SomeData2.ndf",
Hajmi = 100 MB,
MAXSIZE=CHEKSIZ,
FILE O'SIShI = 5%
TIZIMGA KIRISH
-- Garchi tranzaktsiyalar jurnalini qismlarga bo'lish mumkin bo'lsa-da, buni qilmaslik kerak,
-- chunki bu fayl tez-tez o'zgarib turadi va muntazam tozalanadi (masalan, qachon
-- ma'lumotlar bazasining zaxira nusxasini yaratish).
(NAME = SomeDatalog,
FILENAME = "c:\dastur fayllari\microsoft sql server\mssql\data\SomeData.ldf",
Hajmi = 10 MB,
MAXSIZE=CHEKSIZ,
FAYL O'SIShI=10)
BOSH
-- Ma'lumotlar bazasiga egalik huquqini uning nomidan foydalanuvchiga darhol bergan ma'qul
-- 1C ulanadi. Buning uchun biz joriy bazani e'lon qilishimiz kerak
- hozirgina yaratilgan
SomeData dan foydalaning
BOSH
-- va sp_changedbowner-ni ishga tushiring
EXEC sp_changedbowner @loginame = "SomeData_dbowner"

Ma'lumotlar fayli hajmining avtomatik o'sishi haqida kichik bir cheklov. Odatiy bo'lib, yaratilgan ma'lumotlar bazalari uchun fayl o'lchamlari joriy fayl hajmining 10% ga oshadi. Bu kichik ma'lumotlar bazalari uchun juda maqbul echimdir, lekin kattalar uchun unchalik yaxshi emas: ma'lumotlar bazasi hajmi, masalan, 20 Gb bo'lsa, fayl bir vaqtning o'zida 2 Gb ga oshishi kerak. Garchi bu hodisa kamdan-kam sodir bo'lishiga qaramasdan, u bir necha o'n soniya davom etishi mumkin (barcha boshqa tranzaktsiyalar shu vaqt ichida amalda bo'sh turadi), bu ma'lumotlar bazasi bilan faol ishlash paytida sodir bo'lsa, ba'zi nosozliklarni keltirib chiqarishi mumkin. Disk maydoni deyarli to'liq to'ldirilganda yuzaga keladigan proportsional o'sishning ikkinchi salbiy ta'siri - bo'sh joy etishmasligi tufayli muddatidan oldin ishdan chiqish ehtimoli. Misol uchun, agar 40 Gb hajmli disk bo'limi bitta ma'lumotlar bazasi uchun to'liq ajratilgan bo'lsa (aniqrog'i, ushbu ma'lumotlar bazasining bitta fayli uchun), u holda ma'lumotlar bazasi faylining kritik hajmi zudlik bilan (juda zudlik bilan, oddiy foydalanuvchi ishining uzilishigacha) ma'lumotlarni saqlashni qayta tashkil etish, ma'lumotlar fayli hajmi 35 GB. O'sish hajmi 10-20 MB ga o'rnatilgan bo'lsa, siz 39 GB ga etguningizcha ishlashni davom ettirishingiz mumkin.

Shuning uchun, yuqoridagi ro'yxatda ma'lumotlar bazasi fayllaridan birining hajmini 5% ga oshirish ko'rsatilgan bo'lsa-da, ma'lumotlar bazasining katta o'lchamlari uchun 10-20 MB lik qat'iy o'sishni o'rnatish yaxshiroqdir. Ma'lumotlar bazasi fayllari hajmining o'sish bosqichi qiymatlarini belgilashda shuni hisobga olish kerakki, fayllar guruhidagi fayllardan biri maksimal hajmga etgunga qadar, qoida amal qiladi: bitta fayl guruhining fayllari hammasi o'sadi. bir vaqtning o'zida, ularning barchasi to'liq to'ldirilganda. Shunday qilib, yuqoridagi misolda, SomeData1.mdf fayli maksimal hajmi 200 MB ga yetganda, SomeData2.ndf fayli taxminan 1,1 GB hajmga ega bo'ladi.

Bunday ma'lumotlar bazasini yaratgandan so'ng, hatto uning himoyalanmagan SomeData2.ndf va SomeData.ldf fayllari tajovuzkor uchun mavjud bo'lsa ham, ma'lumotlar bazasining haqiqiy holatini - ma'lumotlarni (shu jumladan ma'lumotlar bazasining mantiqiy tuzilishi haqidagi ma'lumotlarni) tiklash juda qiyin bo'ladi. ) bir nechta fayllarga tarqaladi, bundan tashqari, asosiy ma'lumotlar (masalan, qaysi fayllar ushbu ma'lumotlar bazasini tashkil etishi haqida) shifrlangan faylda bo'ladi.

Albatta, agar ma'lumotlar bazasi fayllari kriptografik vositalar yordamida saqlangan bo'lsa, unda zahira nusxalari (hech bo'lmaganda bu fayllar) shifrlanmagan ommaviy axborot vositalarida amalga oshirilmasligi kerak. Alohida ma'lumotlar bazasi fayllari zaxiralanganligiga ishonch hosil qilish uchun "MA'LUMOTLAR BAZASINI ZAXIRALASH" buyrug'i uchun tegishli sintaksisdan foydalaning. E'tibor bering, ma'lumotlar bazasi zahirasini parol bilan himoya qilish imkoniyatiga qaramay ("PASSWORD = " va "MEDIAPASSWORD = " BACKUP DATABASE" buyrug'ining variantlari), bunday zahira shifrlanmagan!

Disklarda saqlangan dastur serveri va mijoz ma'lumotlarini shifrlash

Ko'pgina hollarda, 1C: Enterprise tomonidan ishlatiladigan fayllarni (mijoz qismi va dastur serveri) shifrlangan muhitda saqlashni asossiz yuqori xarajatlar tufayli oqlab bo'lmaydi, ammo, agar bunday ehtiyoj mavjud bo'lsa, iltimos, dastur serveri va mijoz qismi ekanligini unutmang. Ilova ko'pincha vaqtinchalik fayllarni yaratadi. Ko'pincha, ushbu fayllar dastur tugagandan so'ng qolishi mumkin va 1C vositalari yordamida ularni o'chirishni kafolatlash deyarli mumkin emas. Shunday qilib, 1C-da vaqtinchalik fayllar uchun ishlatiladigan katalogni shifrlash yoki uni RAM-disk yordamida diskda saqlamaslik (oxirgi variant yaratilgan fayllar hajmi va RAM miqdoriga qo'yiladigan talablar tufayli har doim ham mumkin emas) paydo bo'ladi. 1C: Enterprise ilovasining o'zi).

O'rnatilgan 1C vositalari bilan ma'lumotlarni shifrlash.

1C-da shifrlashdan foydalanishning odatiy imkoniyatlari shifrlash parametrlari bilan Zip fayllari bilan ishlash uchun ob'ektlardan foydalanishga to'g'ri keladi. Quyidagi shifrlash rejimlari mavjud: 128, 192 yoki 256 bitli kalitli AES algoritmi va dastlab Zip arxivatorida ishlatilgan eskirgan algoritm. AES bilan shifrlangan zip fayllarni ko'pgina arxivchilar o'qiy olmaydi (WinRAR, 7zip). Shifrlangan ma'lumotlarni o'z ichiga olgan faylni yaratish uchun siz parol va shifrlash algoritmini ko'rsatishingiz kerak. Ushbu xususiyatga asoslangan shifrlash-dekodlash funktsiyalarining eng oddiy misoli quyida keltirilgan:

Funktsiya EncryptData(Ma'lumotlar, Parol, Shifrlash usuli = Aniqlanmagan) Eksport

// Ma'lumotlarni vaqtinchalik faylga yozing. Aslida, barcha ma'lumotlarni bu tarzda saqlab bo'lmaydi.
ValueToFile(TempFileName, Data);

// Arxivga vaqtinchalik ma'lumotlarni yozing
Zip = Yangi ZipFileEntry (TempArchiveFileName, Password, Encryption Method);
Zip.Add(Vaqtinchalik fayl nomi);
Zip.Write();

// Qabul qilingan arxivdan ma'lumotlarni o'qing Ram
EncryptedData = NewValueStorage(Yangi BinaryData(TempArchiveFileName));

// Vaqtinchalik fayllar - o'chirish

EndFunction Function DecryptData(EncryptedData, Password) eksporti

// Diqqat! O'tkazilgan parametrlarning to'g'riligi kuzatilmaydi

// O'tkazilgan qiymatni faylga yozing
TempArchiveFileName = GetTemporaryFileName("zip");
BinaryArchiveData = EncryptedData.Get();
BinaryArchiveData.Write(TempArchiveFileName);

// Yangi yozilgan arxivning birinchi faylini chiqarib oling
TempFileName = GetTempFileName();
Zip = NewReadZipFile (TempArchiveFileName, Parol);
Zip.Extract(Zip.Items, TemporaryFileName, FilePath Recovery ModeZIP.Don'tRecover);

// Yozilgan faylni o'qing
Ma'lumotlar = ValueFromFile(TempFileName + "\" + Zip.Elements.Name);

// Vaqtinchalik fayllarni o'chirish
DeleteFiles(TempFileName);
DeleteFiles(TempArchiveFileName);

Ma'lumotlarni qaytarish;

EndFunctions

Albatta, bu usulni ideal deb atash mumkin emas - ma'lumotlar aniq matnda vaqtinchalik papkaga yoziladi, usulning ishlashi, ochig'ini aytganda, bundan yomonroq emas, ma'lumotlar bazasida saqlash juda katta hajmdagi joyni talab qiladi, ammo bu faqat platformaning o'rnatilgan mexanizmlariga asoslangan yagona usul. Bundan tashqari, u boshqa ko'plab usullardan ustunlikka ega - bu usul shifrlash bilan bir vaqtda ma'lumotlarni qadoqlashni amalga oshiradi. Agar siz ushbu usulning kamchiliklarisiz shifrlashni amalga oshirmoqchi bo'lsangiz, ularni tashqi komponentda amalga oshirishingiz kerak yoki MAQOMOTI ob'ektlarini yaratish orqali, masalan, Microsoft CryptoAPI-dan foydalanib, mavjud kutubxonalarga murojaat qilishingiz kerak. Misol tariqasida, olingan parol asosida satrni shifrlash/shifrini ochish funksiyalarini keltiramiz.

Funktsiya EncryptStringDES(UncryptedString, Password)

CAPICOM_ENCRYPTION_ALGORITHM_DES = 2; // Bu doimiy CryptoAPI dan olingan


EncryptionMechanism.Content = PlainString;
EncryptionMechanism.Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM_DES;
EncryptedString = EncryptionMechanism.Encrypt();

EncryptedString-ni qaytaring;

EndFunction // EncryptStringDES()

DecryptStringDES funktsiyasi (EncryptedString, parol)

//Diqqat! Parametrlar tekshirilmaydi!

EncryptionMechanism = Yangi COMObject("CAPICOM.EncryptedData");
EncryptionMechanism.SetSecret(Parol);
Urinish
EncryptionMechanism.Decrypt(EncryptedString);
Istisno
// Noto'g'ri parol!;
Qaytish aniqlanmagan;
Urinishning tugashi;

EncryptionMechanism.Contentni qaytarish;

EndFunction // DecodeStringDES()

E'tibor bering, o'tkazishda bo'sh qiymat ushbu funktsiyalarda string yoki parol sifatida xato xabari ko'tariladi. Ushbu shifrlash protsedurasi yordamida olingan qator asl nusxadan bir oz uzunroq. Ushbu shifrlashning o'ziga xos xususiyati shundan iboratki, agar siz satrni ikki marta shifrlasangiz, hosil bo'lgan satrlar bir xil bo'lmaydi.

Kriptografik vositalardan foydalanishdagi asosiy xatolar.

Kriptografik vositalardan foydalanganda ko'pincha bir xil xatolarga yo'l qo'yiladi:

Kriptografiyani qo'llashda ishlashning pasayishini kam baholash.

Kriptografiya juda ko'p sonli hisob-kitoblarni talab qiladigan vazifadir (ayniqsa DES, 3DES, GOST, PGP kabi algoritmlar uchun). Va hatto yuqori samarali va optimallashtirilgan algoritmlardan (RC5, RC6, AES) foydalanganda ham, xotirada va hisoblashda keraksiz ma'lumotlarni uzatishdan qochib bo'lmaydi. Va bu ko'plab server komponentlarining (RAID massivlari, tarmoq adapterlari) imkoniyatlarini deyarli inkor etadi. Shifrlash uchun apparatli shifrlash yoki apparat kalitini olishdan foydalanganda, qo'shimcha mumkin bo'lgan ishlash to'siqlari mavjud: ikkilamchi qurilma va xotira o'rtasida ma'lumotlarni uzatish tezligi (va bunday qurilmaning ishlashi hal qiluvchi rol o'ynamasligi mumkin). Kichik hajmdagi ma'lumotlarni (masalan, pochta xabari) shifrlashdan foydalanganda, tizimdagi hisoblash yukining ortishi unchalik sezilmaydi, lekin hamma narsani va hamma narsani to'liq shifrlashda, bu tizimning ishlashiga katta ta'sir ko'rsatishi mumkin. butun tizim.

Parollar va kalitlarni tanlashning zamonaviy imkoniyatlarini yetarlicha baholamaslik.

Hozirgi vaqtda texnologiyaning imkoniyatlari shundan iboratki, uzunligi 40-48 bitli kalitni kichik tashkilot, 56-64 bit uzunlikdagi kalitni esa yirik tashkilot tanlashi mumkin. Bular. Kamida 96 yoki 128 bitli kalitni ishlatadigan algoritmlardan foydalanish kerak. Lekin ko'pchilik kalitlar foydalanuvchi tomonidan kiritilgan parollar asosida xesh algoritmlari (SHA-1 va boshqalar) yordamida yaratiladi. Bunday holda, 1024 bitli kalit ham saqlanmasligi mumkin. Birinchidan, tez-tez taxmin qilish oson parol ishlatiladi. Tanlovni osonlashtiradigan omillar quyidagilardir: harflarning faqat bitta holatidan foydalanish; parollarda so'zlar, ismlar va iboralardan foydalanish; ma'lum sanalar, tug'ilgan kunlar va boshqalardan foydalanish; parollarni yaratishda "naqshlar" dan foydalanish (masalan, tashkilot bo'ylab 3 harf, keyin 2 raqam, keyin 3 harf). Yaxshi parol ikkala katta harflar, raqamlar va tinish belgilarining tasodifiy ketma-ketligi bo'lishi kerak. Klaviaturadan kiritilgan 7-8 belgigacha bo'lgan parollar, hatto ushbu qoidalarga rioya qilingan taqdirda ham, oqilona vaqt ichida taxmin qilish mumkin, shuning uchun parol kamida 11-13 belgidan iborat bo'lishi yaxshiroqdir. Ideal yechim parol bo'yicha kalitni yaratishdan bosh tortishdir, masalan, turli xil smart-kartalar yordamida va hokazo, ammo bu holda shifrlash kaliti tashuvchisini yo'qotishdan himoya qilish imkoniyatini ta'minlash kerak.

Kalitlar va parollarni xavfsiz saqlash.

Ushbu xatoning odatiy misollari:

  • foydalanuvchi monitoriga yopishtirilgan stikerlarga yozilgan uzun va murakkab parollar.
  • barcha parollarni himoyalanmagan (yoki tizimning o'zidan ancha zaifroq himoyalangan) faylda saqlash
  • elektron kalitlarni umumiy mulkda saqlash.
  • foydalanuvchilar o'rtasida elektron kalitlarni tez-tez o'tkazish.

Agar kalit eshik yonidagi gilam ostida bo'lsa, nega zirhli eshik yasash kerak?

Dastlab shifrlangan ma'lumotlarni xavfsiz muhitga o'tkazish.

Xavfsizlik tizimini tashkil qilishda uning maqsadiga mos kelishiga ishonch hosil qiling. Misol uchun, men bir vaziyatga duch keldim (1C bilan bog'liq bo'lmagan), dastlab shifrlangan fayl, dastur ochiq shaklda ishlayotganda, uni xavfsiz o'qish mumkin bo'lgan vaqtinchalik papkaga joylashtirilgan. Ko'pincha, aniq matndagi shifrlangan ma'lumotlarning zaxira nusxalari ushbu ma'lumotlarga "yaqin" joyda joylashgan.

Kriptografik vositalardan noto'g'ri foydalanish

Tranzitdagi ma'lumotlar shifrlanganda, ma'lumotlardan foydalaniladigan joylarda mavjud bo'lmasligini kutish mumkin emas. Masalan, IPSec xizmatlari dastur serveri tomonidagi dastur sathida tarmoq trafigini "tinglash" imkoniyatini hech qanday tarzda oldini olmaydi.

Shunday qilib, kriptografik tizimlarni amalga oshirishda xatolarga yo'l qo'ymaslik uchun uni joylashtirishdan oldin (hech bo'lmaganda) quyidagilarni bajarish kerak.

  • Aniqlash:
    • Nimani himoya qilish kerak?
    • Qanday himoya usulini qo'llash kerak?
    • Tizimning qaysi qismlari himoyalangan bo'lishi kerak?
    • Kirishni kim boshqaradi?
    • Shifrlash barcha kerakli sohalarda ishlaydimi?
  • Ma'lumot qayerda saqlanishi, tarmoq orqali qanday yuborilishi va ma'lumotlarga kirish mumkin bo'lgan kompyuterlar haqida qaror qabul qiling. Bu tizimni amalga oshirishdan oldin tezlik, sig'im va tarmoqdan foydalanish haqida ma'lumot beradi, bu esa unumdorlikni optimallashtirish uchun foydalidir.
  • Tizimning har xil turdagi hujumlarga nisbatan zaifligini baholang.
  • Tizim xavfsizligi rejasini ishlab chiqish va hujjatlashtirish.
  • Tizimdan foydalanishning iqtisodiy samaradorligini (asoslanishini) baholash.

Xulosa

Albatta, kursoriy sharhda 1C-da xavfsizlik bilan bog'liq barcha jihatlarni ko'rsatishning iloji yo'q, ammo ba'zi bir dastlabki xulosalar chiqaramiz. Albatta, ushbu platformani ideal deb atash mumkin emas - u, boshqa ko'plab odamlar singari, xavfsiz tizimni tashkil qilishning o'ziga xos muammolariga ega. Ammo bu hech qanday holatda bu muammolarni chetlab o'tib bo'lmaydi degani emas, aksincha, tizimni to'g'ri ishlab chiqish, joriy etish va ishlatish bilan deyarli barcha kamchiliklarni bartaraf etish mumkin. Muammolarning aksariyati ma'lum bir dastur yechimi va uni bajarish muhitining etarli darajada ishlab chiqilmaganligi tufayli yuzaga keladi. Masalan, sezilarli o'zgarishlarsiz odatiy echimlar etarli darajada xavfsiz tizimni yaratishni anglatmaydi.

Ushbu maqola har qanday xavfsizlik choralari kompleksi amalga oshirishning barcha bosqichlarini qamrab olishi kerakligini yana bir bor namoyish etadi: ishlab chiqish, joylashtirish, tizimni boshqarish va, albatta, tashkiliy choralar. Axborot tizimlarida xavfsizlikning asosiy tahdidi “inson omili” (shu jumladan foydalanuvchilar) hisoblanadi. Ushbu chora-tadbirlar to'plami oqilona va muvozanatli bo'lishi kerak: bu mantiqqa to'g'ri kelmaydi va himoyani tashkil qilish uchun etarli mablag' ajratilishi dargumon, bu ma'lumotlarning o'zi narxidan oshadi.

Kompaniya xaridorlar, ishlab chiquvchilar, dilerlar va sherik hamkorlar uchun noyob xizmatdir. Bundan tashqari, bu Rossiya, Ukraina, Qozog'istondagi eng yaxshi onlayn dasturiy ta'minot do'konlaridan biri bo'lib, u mijozlarga mahsulotlarning keng assortimentini, ko'plab to'lov usullarini, tezkor (ko'pincha lahzali) buyurtmalarni qayta ishlashni, buyurtmalarni bajarish jarayonini shaxsiy bo'limda kuzatishni taklif qiladi.