Eén manier naar binnen, wat je ook verbindt.
Een database die je draait, een bestand dat je neerzet, een klein script op je eigen server. Het zijn allemaal items in dezelfde tabel, ze worden allemaal op dezelfde manier geregistreerd, en een nieuw soort toevoegen is een item en geen nieuw scherm.
Wat je vandaag kunt koppelen
Twee vormen, en een bestand
Een database, rechtstreeks
PostgreSQL, MySQL of MongoDB. Host, poort, database, gebruiker, wachtwoord, TLS standaard aan. Alleen-lezen — niets wat dash-b doet kan naar je productiegegevens schrijven.
Een connector op je eigen server
Eén PHP-bestand dat je naast de database uploadt. dash-b krijgt een adres en een ondertekeningssleutel, en verder niets: geen host, geen gebruikersnaam, geen wachtwoord. Het is de enige bron die kan schrijven, en dat is precies waarom.
Een bestand
Zet een spreadsheet of een CSV op het bord en het wordt een echte tabel, waarvan de kolommen uit het bestand worden gelezen in plaats van door jou te worden geraden. Geen registratie, geen inloggegevens, niets in te stellen.
Wat er met een wachtwoord gebeurt
Een geheim wordt nooit aan je teruggetoond
Zodra een inloggegeven is opgeslagen, kan het formulier dat het opslaat het niet meer weergeven. Dat is geen instelling — het is een apart stuk code van het stuk dat formulieren vult met opgeslagen waarden, met opzet apart gehouden, zodat "toon de opgeslagen waarde" niet één vlag verwijderd is van het wegschrijven van een databasewachtwoord in een pagina die kan worden gescreenshotted, gedeeld op het scherm of uit de DOM gelezen.
De connector bestaat zodat het sterkste geheim dat je hebt je eigen server nooit verlaat.
Je database-inloggegevens blijven in een configuratiebestand op de machine die ze al had. dash-b houdt een adres en een handtekening vast, en geen van beide opent je database voor iemand anders.
Aanmelding bij iets anders
Waarom er hier geen aanmeldvenster is
Een account verbinden — in tegenstelling tot een database — betekent de eigen inlogpagina van de provider, in een venster van zichzelf, en een makelaar die het applicatiegeheim bewaart zodat dash-b het nooit doet en nooit je wachtwoord ziet.
Het gebeurt niet binnen de pagina, en dat is geen voorkeur. Google en Facebook weigeren allebei om ingelijst te worden, opzettelijk: een inlogformulier dat binnen iemand anders' document wordt getoond is niet te onderscheiden van een phishingpagina, en er een bouwen zou een leeg rechthoek opleveren.
De catalogus is hiervoor gebouwd en het mechanisme staat op zijn plek; de verbindingen zelf zijn nog niet open, dus de designer biedt je geen knop aan die faalt nadat je hem hebt gekozen. Zodra ze openen, verschijnen ze als items in dezelfde tabel als alles hierboven.
Twee dingen die door tests vastliggen
De controles die niet mogen terugschrijden
- Geen geheim wordt teruggegeven. Een test stopt een markering in elk veld van elke provider en doorzoekt daarna de weergegeven pagina ernaar.
- Een inlogantwoord wordt pas geloofd als alles eraan klopt — waar het vandaan komt, zijn vorm, de eenmalige waarde die het moet bevatten en zijn leeftijd — en dat alles wordt gecontroleerd voordat er ook maar één veld van gelezen wordt. Er is altijd precies één aanmelding onderweg, dus een oude kan niet door een later bericht beantwoord worden.
Beide bestaan omdat de fout die ze voorkomen stilletjes is: de eerste zou een wachtwoord in een schermafbeelding lekken, en de tweede zou een link iemand anders account met dat van jou kunnen verbinden.
Verbonden is maar de helft.
Een tegel kan lezen wat je verbindt. Met een connector kan een tegel er ook naar schrijven — een knop op het bord die een rij toevoegt aan je eigen database.