Sistem Yapılandırma ve Güvenlik Ayarları

Yapılandırma ayarları GEODI.exe ile aynı dizinde SystemSettings.json  dosyası oluşturularak düzenlenebilir. SystemSettings.ReadMe.txt dosyası içindeki örnek en sık ihtiyaç duyulan bir kaç ayarı içerir.

 

GEODI varsayılanda farklı sitelerden restapi çağrılarına izin vermez.  SystemSettings.json ile izin verilecek siteler belirlenebilir.

Json içeriğinde açıklama satırı, remli ifade bulunmamalıdır.

Ayar dosyası bir defa okunur. Ayarlar değiştirildiğinde GEODI.exe veya IIS üzerinde kullanımda Pool yeniden başlatılmalıdır.

GEODI.exe yerine IIS benzeri bir Web server kullanımı durumunda WebServer kategorisindeki özellikler kullanılmaz. WebServerSecurity ayarları kullanılmaya devam edilir.

Ayarlar

Ayar Adı

Tipi

Varsayılan Değer

Kategori

Versiyon

Açıklama

Ayar Adı

Tipi

Varsayılan Değer

Kategori

Versiyon

Açıklama

AppDataFolder

string

null

System



Uygulamanın Proje, Log, Varsayılan Index , Sözlükler ve Tüm meta veriler için kullanacağı yoldur.

null ve boş değerler için AppData konumu kullanılır.

IIS altında kullanımda GEODI.exe ve GEODI için ortak yol belirtilebilir. %App% uygulama klasörünü gösterir. System.Environment.SpecialFolder değerleri %% içerisinde path tanımında kullanılabilir.

  • GEODI.exe ile uyumlu olması için Windows gezgini adres çubuğuna %appdata%  yazılarak gidilen klasör  adı alınıp kullanılmalıdır.

{ "AppDataFolder":"C:\\GeodiDataFolder" }

AppPort

int

3323

WebServer



GEODI.exe üzerinden başlatılan WebServer tarafından kullanılacak portu belirlemekte kullanılır.

  • 80 olarak ayarlanırsa istemci tarafında port yazmaya gerek kalmaz.

  • SSLCertificate ayarı yapılmışsa 443 SSL portu kullanılırsa istemci tarafında port yazmaya gerek kalmaz.

  "Port" anahtarı  exe  parametresi olarak kullanılabilir.

AppIP

string

null

WebServer

7.0.1.25977+

exe üzerinden başlatılan WebServertarafından dinlenecek IP adresini belirlemekte kullanılır.

Varsayılanda Server tüm IP adresleri üzerinden yayın yapar.

  "IP" anahtarı  exe  parametresi olarak kullanılabilir.

ModuleStoreFolder

string

null

System

 

Otomatik offline modül güncelenmesi için kullanılacak dizin. Verilmediği zaman DECE-STORE adresi geçerlidir.

SocketReceiveTimeout

int

-1

WebServer



Milisaniye cinsinden uygulama için varsayılan bağlantı zaman aşımı süresidir. Varsayılan değeri -1 (otomatik) dir.

SocketHeaderReceiveTimeout

int

-1

WebServer



Milisaniye cinsinden  uygulama için varsayılan HTTP ön bilgi okuma zaman aşımı süresidir. Varsayılan değeri -1 (otomatik) dir. 

TrustedRefererSiteList

string[]

null

WebServerSecurity



Sisteme link verilmesi, Iframe kullanımı ve Rest api erişimi için güvenilecek siteleri belirlemekte kullanılır.  * Kabul eder.

Standart tarayıcılar üzerinden yapılacak kullanıcıları yanıltma amaçlı istekleri önlemeyi hedefler.

Varsayılanda tüm sitelere izin verilir.

TrustedOriginSiteList

string[]

null

WebServerSecurity



POST Data, Iframe kullanımı ve Rest api erişimi için güvenilecek siteleri belirlemekte kullanılır.  * Kabul eder.

Standart tarayıcılar üzerinden yapılacak kullanıcıları yanıltma amaçlı istekleri önlemeyi hedefler.

Varsayılanda hiç bir siteye izin verilmez.

{ "TrustedOriginSiteList":["*"] "ServerNames": ["localhost","127.0.0.1","www.myserver.com","myserver.com"] }

TrustedOriginUICheck

bool

true

WebServerSecurity

7.0.1.26096+

false ise sadece rest api istekleri için origin ve token erişim kontrolü yapılır.

true ise gui/public/ klasörü dışındaki hiç bir içerik TrustedOriginSiteList listesinde olmayan ve token ile erişmeyen sitelere sunulmaz.

DisableCSRFSecurity

bool

false

WebServerSecurity



Webserver için Özel ek güvenlik ayarlarını devre dışı bırakmakta kullanılır.

Standart tarayıcılar üzerinden yapılacak kullanıcıları yanıltma amaçlı istekleri önlemeyi hedefler.

Kapatılması düşük miktarda (%0.01<) performans artışı sağlar. Ayarın kapatılmaması önerilir.

XSSSecurityMode

int

0

WebServerSecurity

8.0.0.27386+

Gelen istekteki form ve querystring değerlerindeki html içerikler için davranışı ayarlamakta kullanılır. Bir HttpHeader eklemez. Headerları ayarlamak için HttpHeaders ayarı kullanılmalıdır.

  • 0  : 0 (Default) değerinde sadece gerekli alanlar korunur. performansı yüksek olan kullanımdır.  Güvenli bir seçenektir. Diğer seçenekler beklenmeyen bir tespit durumunda çözüm üretilene kadar geçici olarak kullanılabilir.

  • 1 :  (ToSafeHTML) İsteklerde gelen tüm alanlarda sadece b,i,h1 .. gibi temel kullanımlara izin verilir. performansı büyük ölçüde düşürür.

  • 2 :  (ClearHTML) İsteklerde gelen tüm html tag'ler temizlenir. performansı büyük ölçüde düşürür.
    3-6 arası seçenekler için GEODI 8.0.0.27658+ gereklidir.

  • 3 : (ThrowErrorHasHTML) İstek içerisinde html varsa hata fırlatılır.

  • 4 : (SmartMode_ToSafeHtml) Sadece gerekli alanlar için güvenli html çevrimi yapılır. Default seçeneği ile aynı şeklide çalışır.

  • 5 : (SmartMode_ClearHTML) Sadece gerekli alanlar için html ifadeleri temizler.

  • 6 : (SmartMode_ThrowErrorHasHTML) Kontrol gereken alanlarda html değer gönderilmişse hata fırlatılır.

HttpHeaders

string[]

null

WebServerSecurity



HTTP_HEADER:VALUE formatı ile istemciye gönderilecek header bilgilerinin tanımlanmasını sağlar. 

Api kullanımına göre tarayıcı taraflı güvenlik ayarlarını yapılandırmakta  kullanılabilir.  (  https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers#Security )



Örnek
HttpHeaders: [ "X-XSS-Protection:1", "X-Content-Type-Options: nosniff", ]




ShowWebExceptionStackTrace

bool

false

WebServerSecurity



Oluşacak Web istek hatalarında hata detaylarının görüntülenmesini sağlar. Varsayılanda detaylar görüntülenmez.

LogExceptionStackTrace

bool

false

System



Tarama ve Sistem başlatma hatalarına ek ait detayların loglanmasını sağlar.

ServerNames

string[]

null

WebServerSecurity



GEODI.exe üzerinden başlatılan WebServer'a ait sunucu adı bilgisidir. Ayar tanımlandığında subdomain kullanımı engellendir. servername myserver olarak belirlendiğinde sub.myserver istekleri kabul edilmez.

EnableUrlSession

bool

false

WebServerSecurity



Ayar açık ise Url üzerinden Session transferine izin verilir. Kullanılması önerilmeyen bir yapılandırma ayarıdır.

TileExpandPercent

double

20.0

WMSServer



WMS Serve rüzerinde etiketler için kullanılan varsayılan karo büyütme oranıdır.

VerisonExtenderText

string

null

System



Tarayıcıya gidecek içerikler için belirlenen versiyon kodunu değiştirmekte kullanılır. Tema hazırlarken tarayıcı cache'i sıfırlamakta kullanılabilir.

UseDefaultCredential

bool

true

System



WebSitesi tarama gibi uzak bağlantılarda sistem Proxy ayarlarını kullanmaya zorlar.

ServerUri

string

null

Notification



E-posta gibi arka plan hizmetlerinde belirlenecek linklerde kullanılacak web adresini belirlemekte kullanılır.

AutoIndexUpdateAndRecovery

bool

false

System

7.0.1.26858+

Servis veya IIS altından kullanımda bu ayara ihtiyaç duyulmaz. Elektirik kesintisi, disk arızası gibi durumlarda hatalı girdileri onay almadan otomatik düzeltir. Elektirik kesintisi, disk arızası gibi durumlarda hatalı girdileri onay almadan otomatik düzeltir.

IgnoreSystemAdminContentAccessPrivileges

bool

false

WebServerSecurity

8.0.027625+

true olarak ayarlanırsa “Sistem Yöneticisi” yetkisi için içerikleri görme, açma, indirme ayrıcalıkları iptal edilir. Bu yetenekler için “Sistem Yöneticisi” de olunsa yetki verilmiş olması beklenir. GEODI uygulaması üzerinde Settings.SystemAdminMode ile proje bazlı yönetilebilir.

DisableBasicAuthentication

bool

false

WebServerSecurity



Basic Authentication desteğini kapatır. GEODI üzerindeki tüm Authentication hizmetleri otomatik deneme saldırılarına karşı koruma altındadır. 

SecurityProtocolForRequest

int

3120

System

7.0.1.26674+


MOBIDIOfis
5.0.0.13115+

Farklı sunuculara yapılacak http çağrılarında kullanılacak güvenlik protokolünü ayarlamakta kullanılır. 

  • SSL 2 = 12

  • SSL 3 = 48

  • TLS 1.0 = 192

  • TLS 1.1 = 768

  • TLS 1.2 = 3072

  • TLS 1.3 = 12288

3120= TLS1.2 +  SSL 3

SecurityProtocolForResponse

int

16368

WebServerSecurity

7.0.1.26766+


MOBIDIOfis
5.0.0.13106+

Bu dokümandaki SSL ayarları yapılmışsa hangi güvenlik protokollerinin destekleneceğini ayarlamakta kullanılır.

  • SSL 2 = 12

  • SSL 3 = 48

  • TLS 1.0 = 192

  • TLS 1.1 = 768

  • TLS 1.2 = 3072

  • TLS 1.3 = 12288

16368 = TLS 1.0 + TLS 1.1 + TLS1.2 + TLS 1.3 + SSL 3 ( Eski istemcileri de destekleyen, kapsayıcı değer )

15408 = TLS1.2 + TLS 1.3 + SSL 3 ( İstemcileri güvenli iletişime zorlayıcı değer )

SSLLocalCertificateSerial

string

null

WebServer

6.1.0.24659+

Computer Certifcates/Personal altında yüklü geçerli bir sertifika ile SSL aktifleştirmekte kullanılır.  SSLCertificate ile sertifika dosyası belirtmeye alternatif bir yöntemdir.

Özel bir durum yoksa ssl tanımı için bu yöntem tercih edilmelidir. Bu yöntemle password belirtme ihtiyacı da yoktur.

Windows'ta sertifikalar bölümünde sertifikaya çift tıklandığında açılan pencerede Details→Serial number bölümünden bu değer bulunabilir.

SSL sertifika temini için CSR ihtiyacı varsa https://csrgenerator.com/ veya https://www.digicert.com/easy-csr/openssl.htm sayfalarından yararlanılabilir, Veya IIS üzerinden alıp daha sonra IIS'i durdurabilirsiniz. (  Geodi IIS üzerinden çalıştırılıyorsa bu ayar kullanılmaz. IIS üzerindeki tanımlar kullanılır. )

  • AppPort ayarı 443 yapılırsa istemci tarafında port yazmaya gerek kalmaz.

 

SSLCertificate

string

null

WebServer



SSL Sertifika dosyasının konumunu belirtmekte kullanılır. Tanımlanmışsa GEODI.exe sadece https isteklerine dönüş yapar. cer, p7b ve pfx uzantılı dosyaları destekler.

Özel bir durum yoksa bu yöntem kullanılmamalı, SSLLocalCertificateSerial ayarı tercih edilmelidir.

  • AppPort ayarı 443 yapılırsa istemci tarafında port yazmaya gerek kalmaz. 

SSLCertificatePass

string

null

WebServer



Varsa SSL Sertifika dosyasına ait şifreyi belirtmekte kullanılır. Açık text veya GEODI araçları ile taşınamaz kripto kullanılabilir.

Özel bir durum yoksa bu yöntem kullanılmamalı, SSLLocalCertificateSerial ayarı tercih edilmelidir.

SSLErrorLog

bool

false

WebServer

6.1.0.24659+

true  yapılırsa tüm SSL doğrulama hatalarını loglar

NoSSLPort

int

0

WebServer

6.1.0.21550+

SSL ayarlanmış ise 0 değerinden farklı bir port belirlenirse bu prottan http hizmeti de verilir.

ForceHttpsRedirect

bool

false

WebServer

6.1.0.21550+

NoSSLPort ayarlanmış ise tüm http isteklerinin https adrese yönlendirilmesini sağlar.

AutoForwardedURL

string

null

WebServer

6.1.0.23511+

"X-Forwarded-For" bilgisi içeren bir yönlendirme Header bilgisi alındığında kullanılacak sunucu adresini belirlemekte kullanılır. Sızma gücenlik önlemleri bu tür yönlendirmelerin çalışmasına engel olacaktır.  DMZ Proxy, IIS Rewrite Proxy kullanılarak ağlar arası veya port yönlendirmesi yapıacaksa

  • SystemSettings.json içerisindeki TrustedRefererSiteList ve TrustedOriginSiteList ayarlarına tarayıcıda görülen adresi kabul edecek değer yazılmalıdır.

  • AutoForwardedURL ayarına tarayıcıda görülen adres yazılmalıdır.

Örnek :  

 "AutoForwardedURL"  anahtarı exe  parametresi olarak kullanılabilir.

SystemTray

bool

true

WindowsGUI

5.3.0.16891+

true değeri verilirse Geodi.exe solda açılmak yerine Windows Bildirim Alanında  ikon olarak açılır. Windows form arayüzleri sunmaz. Sağ tuş ile sunduğu menüler aracılığı ile yönetmenizi sağlar.

false değeri verilirse Geodi.exe sol tarafa yerleşir. false ayarı IE9+ gerektirir.



Theme

string

Square

GUI

6.0.0.18338+

Varsayılan Tema ayarıdır

GUI/Theme altındaki klasör isimleri kullanılabilir

Language

string

Kurulum Dili

System

6.0.0.18398+

Varsayılan dil ayarıdır.  Dil kodu yazılmalıdır. 

Ayarlanmazsa kurulum dili kullanılır. 

  "Language" anahtarı  exe  parametresi olarak kullanılabilir.

LogMode

int

0

System

6.1.0.21152+

Loglanacak bilgileri belirlemekte kullanılır. Varsayılanda loglama yapılmaz. Flag tipindedir, değerleri toplayarak uygulayabilirsiniz. Loglar Appdata/Logs/[APP]/DebugLog altında saklanır.

  • 0 : Log yok

  • 1 : SQL ( Uygulama tarafından çalıştırılan tüm veritabanı sorgularının loglanmasını sağlar)

  • 2 : UserData ( Sisteme bağlanan kullanıcıya ait bilgiler loglanır)

  • 4: Request ( Sisteme yapılan tüm http istekleri loglar )

  • 8 : Request Detail  ( Sisteme yapılan tüm http isteklerin tüm detaylarını loglar )

  • 16: CreateHttpRequest ( 7.0.1.26660+ gerektirir.  Dış sunuculara yapılan web isteklerini, adresleri loglar )

SessionTimeout

int

120

System

6.1.0.21152+

Sisteme giriş yapan kullanıcının sistemi kullanmadığında atılma süresini dakika cinsinden  belirler.

DefaultWS

string

Bilgisayarım

System

6.1.0.25423+

ilk defa GEODI ES/DA arayüzü açan kullanıcılar için varsayılan proje adıdır. Url wsName içermiyorsa veya kullanıcı için hatırlanan bir proje yoksa  kullanılır.

LoginProviders

string[]

null

System

7.0.0.25611

Sisteme giriş yapılabilecek LoginProvider tanımlarını sınırlamakta kullanılır. Varsayılanda tanınan tüm sağlayıcılar ile giriş yapılabilir.

Örnek : ["LDAP"] yazılırsa Geodi kullanıcıları ile giriş yapılamaz. Sadece LDAP kullanıcıları ile giriş yapılabilir.

AllowLDAPEveryoneUser

bool

true

System

7.0.1.26017+

Ayar true ise S-1-1-0 everyone gurubu için verilen yetkilerin kullanılmasına izin verilir. Ayarı değiştirmek yeniden tarama gerektirmez.

AllowLDAPBuiltInUsers

bool

false

System

7.0.1.26017+

Ayar true ise AuthenticatedUsers, Administrators gibi BuiltIn gruplara verilen yetkilerin kullanılmasına izin verilir. Ayarı değiştirmek yeniden tarama gerektirmez.

ClientProtectionKey1,ClientProtectionKey2

string

null

WebServerSecurity

6.1.0.25423+

Kullanıcı iç token kripto her sunucu için değişir. Buraya yazılacak anahtarlar ile şifreleme için entropi artırılabilir veya azaltılabilir.

MaxUrlSize

int

2048

WebServer

7.0.1.25764+

İstek sırasında kabul edilecek URL boyutunu belirlemekte kullanılır. POST için yapılan isteklerde sınır bulunmamaktadır.