sql >> Databasteknik >  >> RDS >> Sqlserver

Använder min JDBC-anslutning till databasen SSL eller inte?

Stöd för SSL/TLS är inte obligatoriskt i JDBC-specifikationen. Så du kan inte förvänta dig det i alla drivrutiner.

SSL-konfigurationen på databasservern kan härledas från JDBC-URL:n, men detta behöver inte vara deterministiskt. I fallet med Oracle, om du märker att URL:en innehåller en anslutningssträng som indikerar att protokollet som används är TCPS istället för TCP, vilket pekar på användningen av SSL/TLS. Om du gör detta för att validera en säkerhetskonfiguration skulle jag kalla dig slarvig.

Det är oklokt att enbart verifiera klientkonfigurationen för att avgöra om databasservern accepterar anslutningar över SSL, särskilt om icke-SSL-anslutningar är otillåtna. Mekanismerna för att verifiera SSL/TLS-konfigurationen kommer att variera från databas till databas, men det skulle finnas lämpliga säkerhetsguider för att konfigurera databasen i varje enskilt fall.

Om du däremot vill göra ett snabbtest för att verifiera om anslutningen är över SSl/TLS, behöver du bara veta att SSL/TLS-säkrade anslutningar initieras med en handskakning. Om du inte ser någon, använder din drivrutin inte SSL/TLS. Du måste sniffa nätverkstrafik för detta (se till att du har behörighet att göra det). Naturligtvis skulle det ta längre tid att fastställa fallet om en anslutningspool användes, eftersom de fysiska anslutningarna i poolen kan återanvändas gång på gång (utan att nya anslutningar ställs in). På samma sätt kanske du också tycker att nmap är användbart, men jag har aldrig använt det för detta ändamål.



  1. Hur använder du WITH-satsen i MySQL?

  2. Vad betyder FixedLenNullInSource i sp_help?

  3. Snabbaste sättet att kontrollera om det finns en post innan du infogar [mysql_errno()]

  4. Är ett anrop till PDOStatement::closeCursor() nödvändigt om satsobjektet inte är inställt?