# Datarekisteri – Datat RY:n jäsenrekisteri Datayhdistyksen jäsenrekisterin lähdekoodi. Tavoitteena on saada mahdollisimman paljon toiminnallisuudesta abstraktoitua ja siirrettyä [`rekisteri`](https://hub.sr.ht/~slaesvuo/rekisteri):iin. Datarekisterin voit asentaa helposti lisäämällä alla olevan pätkän guix:in [kanavalistaan](https://guix.gnu.org/manual/en/guix.html#Specifying-Additional-Channels). ```lisp (channel (name 'datarekisteri) (url "https://git.datat.fi/ry/datarekisteri.git") (branch "main") (introduction (make-channel-introduction "e93c797eefb1538e7defe04786e0bb5adb039799" (openpgp-fingerprint "A0C9 1947 734F 076F 5F08 E9FF 257D 284A 2A1D 3A32")))) ``` ## Käänteisen välityspalvelimen asetukset Käänteisen välityspalvelimen pitäisi määritellä CSP estämään kaikkien skriptien ajaminen, koska datarekisterin ei tarvitse ajaa koodia käyttäjän laitteella. Content-Type-Options estää selaimia tulkitsemasta tiedostoja virheellisesti skripteiksi tai tyylitiedostoiksi. ``` Content-Security-Policy: default-src 'self'; scrip-src 'none'; object-src 'none' X-Content-Type-Options: nosniff ``` Käänteisen välityspalvelimen pitää myös pakottaa kaikki liikenne kulkemaan https:n yli uudelleenohjaamalla kaikki http-kyselyt ja asettamalla Strict-Transport-Security otsikon. ## Palvelunestohyökkäyksiltä suojautuminen Datarekisteri ei vielä tee itse mitään palvelunestohyökkäysten varalta. Määritä vähintään jokin nopeusrajoitus kyselyille. Alla oleva esimerkki rajoittaa tcp-yhteyksien avaamisnopeutta. Kannattaa lisätä jokin oikoreitti palvelimelle itselleen, esim. `$ iptables -A INPUT -s 127.0.0.1 -j ACCEPT` ennen nopeusrajoitusta. ``` $ iptables -A INPUT -p tcp -m tcp --syn -m hashlimit \ --hashlimit-upto 10/sec --hashlimit-burst 10 --hashlimit-mode srcip,dstport \ --hashlimit-name conn-srcip-dport-rate-limit -j ACCEPT ``` ## Kopiointi Saat käyttää tätä ohjelmaa ja lähdekoodia [AGPL-lisenssin](https://www.gnu.org/licenses/agpl-3.0.en.html) version 3 tai minkä tahansa myöhemmän Free Software Foundationin julkaiseman version ehdoilla.