Bezpieczeństwo   - Bezpieczeństwo plików

Administrator serwera powinien zwrócić uwagę na bezpieczeństwo następujących plików:

<!-- PL: nazwa instancji wzięta jest z nazwy pliku (rozszezrenie "xml" jest pomijane) -->
<!-- EN: instance name is now taken from filename (extension "xml" is skipped) -->
<!-- Correct instance types are MASTER, STANDARD and RESTRICTED (case insensitive). See documentation for more details. -->
<instance type="standard">
<!-- dostęp z jDesignera do konta administracyjnego -->
<admin user="admin" password="admin"/>
<!-- lokalizacja instancji -->
<locale language="pl" timezone="Europe/Warsaw"/>
<!-- kompatybilność wykonywania obiektów zgodnie z daną wersją jPALIO -->
<compatible version="6.6"/>
<!-- pojemność instancji -->
<capacity maxClients="0" maxSessions="0"/>
<!-- opcja załadowania i kompilacji, kodów źródłowych (code) i danych multimedialnych (media) i sesji (sessions) przy starcie serwera. Ustawienie opcji all ustawia pozostałe opcje. -->
<preload code="false" media="false" sessions="true"/>
<log>
<scheduler>
1111111
</scheduler>
</log>
<!-- Parametr ustawiający cache kodów aplikacji (code), danych multimedialnych (media), ról i regionów i przywilejów (role), użytkowników i sesji (user) -->
<cache media="true" code="true" role="true" user="true"/>
<!-- Podanie adresu/nazwy serwera/serwerów umożliwia zarezerwowanie tej nazwy dla tej instancji. Dla pozostałych instacji w których nazwa tego serwera nie zostanie wpisana, nie będzie możliwe wyświetlenie w nich treści pod daną nazwą/adresem serwera. -->
<websites>
www.onet.pl www.wp.pl
</websites>
<!-- Parametr wymuszający protokół http lub https oraz umożliwiający podanie alternatywnego adresu dla aplikacji i danych multimedialnych. Umożliwia wymyszenie tworzenia redirect przez zbudwanie odpowieniej strony html zamiast wysłania jedynie samego nagłówka - użyteczne przy starszych serwerach proxy -->
<URL redirectHTML="false" runSecure="{ -1 (unSecure), 0 (neutral), 1 (secure) }" runHost="10.2.1.1" mediaSecure="-1" mediaHost="10.2.1.2" stickyParams="_LangID=1,_LastPageID,_PreferredColor"/>
<!-- Umożliwia podania parametrów sesji: timeout - maksymalny czas w minutach nieaktywnej sesji po którym sesja zostanie zabita cookies - włącza wymaganie używania cookies (informacje o sesji będą przechowywane w cookies) url - informacje o sesji będą przechowywane w pasku url (przyanajmniej jednen z parametrów cookies i url musi być true) sharedCookies - jeśli chcemy przy właczonych cookies żeby sesja była dzielona między instancjami - nakezy podać tą samą nazwę w tych instancjach writeParams - zapisywanie do tabeli p_session_params zmiennych sesyjnych, przyrestarcie jPALIO wczyta te parametry do pamięci activityLog - zapisywanie do tabeli p_sessions_activity informacji o wejściu na daną stronę przez daną sesję staticIP - wymusza posiadanie przez klienta stałego adresu IP (nie zaimplementowane) header - loguje do tabeli P_SESSIONS zawartości nagłówków http. Musi być stworzona dodatkowa kolumna o nazwie podanej w atrybucie "column". -->
<session timeout="0" cookies="false" url="true" sharedCookies="name" masterInstance="name" writeParams="true" activityLog="false" staticIP="false">
<header name="X-Forwarded-For" column="X_FORWARDED_FOR"/>
<header name="User-Agent" column="USER_AGENT"/>
</session>
<!-- Podanie parametrów bezpieczeństwa, przy pomocy których kodowany jest pasek adresu (SID) i algorytm wyliczania skrótu (algorithm) do zapisu haseł w bazie danych. SID jest dowolnym ciągiem znaków (String) -->
<secure sid="XXXXXX" algorithm="MD5"/>
<!-- Not implemented -->
<!-- Lista adresów IP z których może być dostęp do instancji. Można podać niepełny adres IP (początek adresu - dla całych sieci) -->
<!--access> <10.0.0.1/> <10.10./> </access-->
<!-- Not implemented -->
<!-- statistic - Włącza robienie statystyk z odwiedzin stron. -->
<page default="1" max-age="3" statistic="false"/>
<!-- Określa sposób prezenatcji dat. -->
<date presentation="dd-MM-yyyy"/>
<!-- Określa sposób prezenatcji walut. -->
<currency thousand=" " decimal="," scale="2"/>
<!-- Definicje loggerów dla instancji name - nazwa loggera dir - ścieżka katalogu do którego pisane są logi (domyślnie nazwa instancji) level - poziom notowanych logów. dopuszczalne wartości: DEBUG, INFO, WARN, ERROR, FATAL (domyślnie info) DEBUG < INFO < WARN < ERROR < FATAL appender - w jaki sposób tworzone są nowe pliki logów (na koniec dnia, godziny itp) (domyślnie "yyyy-MM-dd"), wyjątek - log sqlConnector który ma wartość "yyyy-MM-dd-HH" pattern - domyślnie "%d{yyyy-MM-dd HH:mm:ss} %-5p %c - %m%n" additivity - czy wpis ma być propagowany do logów których nazwa zawiera sie w nazwie tego logu (domyślnie "true") -->
<logger name="test1" dir="/var/log/jpalio/logs/jpalio/test1" level="INFO"/>
<logger name="test2" dir="/var/log/jpalio/logs/jpalio/test2" level="DEBUG"/>
<logger name="sqlConnector" appender="yyyy-MM-dd-HH" pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c - %m%n" additivity="true"/>
<logger name="sqlConnector" appender="yyyy-MM-dd-HH"/>
<!-- Opisu standardowy connector "palio" (Dla kodów aplikacji). Jeżeli connector "data" nie zostanie osobno określony, connector "palio" staje się automatycznie connectorem "data". name - nazwa connectora url - adres z jakim się łączy connector (format zależny od typu connectora) refresh - określa co jaki czas connector musi odświeżyć połączenie traceRead - pisane do logów wszystkich operacji odczytu traceWrite - pisane do logów wszystkich operacji zapisu traceExecute - pisane do logów wszystkich operacji wywołanie procedur PL/SQL Poszczególne opcje wewnątrz connectora są zależne od typu connectora (w przypadku jest to connector SQL ORACLE) -->
<connector name="palio" url="jdbc:oracle:thin:@pingwin.torn.com.pl:6372:ePALIO" refresh="0" traceRead="true" traceWrite="true" traceExecute="true">
<user>
jpalio
</user>
<password>
torn
</password>
<maxConnections>
0
</maxConnections>
<minConnections>
0
</minConnections>
<maxInactivity>
15
</maxInactivity>
<!-- max. czas nieaktywności połączenia, jeżeli połączenie nie było w tym czasie użyte, zostanie zamknięte -->
<maxUseCount>
100000
</maxUseCount>
<!-- ilość operacji po której połączenie zostanie zamknięte -->
<maxLifeTime>
720
</maxLifeTime>
<!-- max. czas życia połączenia w minutach (domyślnie 12 godzin) -->
<DataTablespace>
USERS
</DataTablespace>
<!-- domyślna przestrzeń tabel dla danych, działa dla baz danych: ORACLE -->
<IndexTablespace>
INDX
</IndexTablespace>
<!-- domyślna przestrzeń tabel dla indeksów, działa dla baz danych: ORACLE -->
<PretendUpdate>
false
</PretendUpdate>
<!-- gdy true nie jest wykonywany update lecz jedynie wypisywane są do logów instrukcje SQL które należy wykonać ręcznie -->
<DB2TabLenExt>
false
</DB2TabLenExt>
<!-- Czy długość rekordu większa niż 4 KB (np. 8 KB): DB2 -->
</connector>
<!-- Alternatywny URL dla oracle jdbc:oracle:thin:@ora10:1521:zora/jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=_host_)(PORT=1521)))(CONNECT_DATA=(SID=_sid_)(SERVER=SHARED)) -->
<!-- Utworzenie pętli connectorów palio i palio1 - jeżeli jakiś padnie to zostanie przełączony na następny - założenie jest takie że są to identyczne kopie bazy danych -->
<connector name="palio1" url="jdbc:oracle:thin:@pingwin.torn.com.pl:6372:ePALIO" refresh="0" traceRead="true" traceWrite="true" traceExecute="true">
<user>
jpalio
</user>
<password>
torn
</password>
<!-- Performace http://download-west.oracle.com/docs/cd/B10501_01/java.920/a96654/basic.htm#1000888 -->
<defaultRowPrefetch>
10
</defaultRowPrefetch>
<defaultBatchValue>
10
</defaultBatchValue>
<processEscapes>
false
</processEscapes>
<!-- PalioSecurity http://download-west.oracle.com/docs/cd/B10501_01/java.920/a96654/advanc.htm#1022148 -->
<oracle.net.encryption_client>
REQUIRED
</oracle.net.encryption_client>
<oracle.net.encryption_types_client>
( DES40 )
</oracle.net.encryption_types_client>
<oracle.net.crypto_checksum_client>
REQUESTED
</oracle.net.crypto_checksum_client>
<oracle.net.crypto_checksum_types_client>
( MD5 )
</oracle.net.crypto_checksum_types_client>
</connector>
<!-- Przykład connectora typu "NetObjects" - służy do komunikacji z innym serwerem jPALIO i umożliwia wykonywanie poleceń SQL na odległym serwerze jPALIO. timeout - timeout na sockets resetCounter - po ilu transmisjach nastąpi resetowanie strumienia i czyszczenie cache -->
<connector name="palio" url="netobjects://pingwin.torn.com.pl:5454/jpalio" refresh="0" traceRead="true" traceWrite="true" traceExecute="true">
<user>
jpalio
</user>
<password>
torn
</password>
<timeout>
0
</timeout>
<resetCounter>
2000
</resetCounter>
</connector>
<!-- Przykład connectora typu "GenericSQL" - służy do komunikacji z bazami danych dla których nie ma dedykowanego connectora w jPALIO a istniejej bibliotek JDBC. Connector "data" jest używany dla wywołań modułu "sql" bez podania nazwy connectora. -->
<connector name="data" class="GenericSQLConnector" url="jdbc:oracle:thin:@host1:port:sid" refresh="0" traceRead="true" traceWrite="true" traceExecute="true">
<user>
jpalio
</user>
<password>
torn
</password>
<driver>
oracle.jdbc.driver.OracleDriver
</driver>
<initSQL>
select sysdate from dual
</initSQL>
<refreshSQL>
select sysdate from dual
</refreshSQL>
</connector>
<connector name="informix" class="GenericSQLConnector" url="jdbc:informix-sqli://host:port[/dbname]:INFORMIXSERVER=server_name;user=user_name;password=password_name" refresh="0" traceRead="true" traceWrite="true" traceExecute="true">
<driver>
com.informix.jdbc.IfxDriver
</driver>
</connector>
<!-- Przykład connectora typu "remote" - służy do komunikacji z innym serwerem jPALIO i wywoływania jego funkcji lub z aplikacjami zewnętrzymi napisanymi z użyciem biblioteki "NetObjects". -->
<connector name="remote" url="remote://pingwin.torn.com.pl:5454/jpalio" refresh="0" traceRead="true">
<user>
jpalio
</user>
<password>
torn
</password>
<timeout>
0
</timeout>
<resetCounter>
2000
</resetCounter>
</connector>
<!-- Do Sybase jest już dedykowany driver, który wymaga dodania biblioteki jconn3.jar. -->
<!--connector name="sybase" class="GenericSQLConnector" url="jdbc:sybase:Tds:host:port" refresh="0" traceRead="true" traceWrite="true" traceExecute="true"> <user>jpalio</user> <password>torn</password> <driver>com.sybase.jdbc.SybDriver</driver> <initSQL>use gtc</initSQL> <refreshSQL>select sysdate from dual</refreshSQL> </connector-->
<connector name="sybase" url="jdbc:sybase:Tds:host:port/database" refresh="0" traceRead="true" traceWrite="true" traceExecute="true">
<user>
jpalio
</user>
<password>
torn
</password>
</connector>
<!-- Służy do komunikacji protokołem TCP/IP z dowolną aplikacją -->
<connector name="tcp" url="tcp://pingwin.torn.com.pl:5678" refresh="0" traceWrite="true">
<charset>
iso-8859-2
</charset>
</connector>
<!-- Służy do komunikacji protokołem LDAP -->
<connector name="ldap" url="ldap://localhost:389/dc=xxx">
<principal>
cn=Manager,dc=xxx
</principal>
<credentials>
secret
</credentials>
</connector>
<!-- Służy do komunikacji z serwerem FTP -->
<connector name="ftp" url="ftp://ftp.torn.com.pl:21">
<user>
user
</user>
<password>
password
</password>
</connector>
<!-- Metalistener, służy do zdefiniowania clustra połączeń - np. dwie bazy danych, jeżeli jeden connector padnie, to przełączy komunikację na drugi connector -->
<connector name="cluster" url="cluster://" refresh="0">
<pool>
palio1 palio2 palio3 palio4
</pool>
</connector>
<!-- Metalistener, służy do pokazania connectora "palio1" także pod nazwą "name" -->
<connector name="name" url="link://palio1"/>
<!-- Listener nasłuchujący połaczenia z connectorów typu "NetObjects". Udostępnia connector SQL o nazwie listenera (w tym przypadku "palio") -->
<listener name="palio">
<class>
palio.listeners.GenericPalioListener
</class>
<port>
5433
</port>
<user>
jpalio
</user>
<password>
torn
</password>
</listener>
<!-- Listener nasłuchujący połaczenia z connectorów typu "remote". Udostępnia wywoływanie funkcji z modułów, które są zdefiniowane w parametrze 'modules' -->
<listener name="remote">
<class>
palio.listeners.RemoteListener
</class>
<port>
5434
</port>
<user>
jpalio
</user>
<password>
torn
</password>
<modules>
user palio logic mth sql
</modules>
<objects>
remote.object1 remote.object2
</objects>
</listener>
<!-- Listener umożliwia nasłuchiwanie "meta danych". Obecnie nie używany -->
<listener name="metadata">
<class>
palio.listeners.MetaDataListener
</class>
<port>
5432
</port>
</listener>
<!-- Port dla designera, jest opcjonalny, domyślna wartość 5465 -->
<designer port="5465"/>
<module name="Newser">
<connector>
nazwa_connectora
</connector>
</module>
<!-- Włączenie modułu sklepu internetowego i określenia parametrów sklepu -->
<module name="Ezop">
<client_conn>
st
</client_conn>
<client_table>
clients
</client_table>
<client_sequence>
clients_s
</client_sequence>
</module>
<!-- Włączenie modułu bannerów reklamowych -->
<module name="Ads">
<connector>
nazwa_connectora
</connector>
</module>
<!-- Wskazanie na instancję serwera developerskiego, z którego moga być pobierane aktualizacje. Zalecane jest wskazywanie użytkownika posiadającego rolę versioner-readonly. Port i nazwa użytkownika są opcjonalne -->
<versioner>
<source url="user@devel.torn.com.pl:5465/jdesigner.torn.com.pl">
<user>
user
</user>
<!-- jeżeli user nie zostanie podany w url -->
<password>
torn
</password>
</source>
</versioner>
<!-- Klaster serwer'ów palio. Wszystkie serwery w klastrze są sobie równe. Nalezy zdefiniowac konfiguracje (znaczniki cluster) na kazdym komputerze uczestniczacym w klastrze. Jeden klaster dotyczy na każdym komputerze tylko jednej instancji (komputer może uczestniczyć w kilku klastrach komunikujac sie na roznych portach). Hasło jest wspólne dla całego klastra. Port w znaczniku cluster okresla port nasluchujacy dla komputera biezacego. -->
<cluster port="1234" password="cluster">
<!-- Należy umiescic po jednym znaczniku server na każdy pozostaly serwer w klastrze. W liscie serwerow nie umieszczamy adresu serwera zawierajacego konfiguracje. -->
<server host="host" port="1234"/>
</cluster>
<!-- Konfiguracja mechanizmów autoupdatu. Możesz podać jakie tabele lub sekwencje powinny być ignorowane przez mechanizm autoupdatu. Jest to szczególnie użyteczne w przypadku, kiedy systemowe tabele są perspektywami/widokami, itd. -->
<autoupdate>
<table name="P_OBJECTS" action="skip"/>
<sequence name="P_OBJECTS_S" action="skip"/>
</autoupdate>
</instance>