Din capul locului spun că sunt absolut novice în treaba asta.
Vreu să creez, cu ajutorul lui Django, un site web al cărui scop principal va fi afișarea hărților. Doar că aceste hărți sunt create la comandă per client. Fiecare client intră pe site, își face cont și primește permisiuni de a vizualiza anumite hărți.
Hărțile vor fi servite de pe un server special, unde am instalat un pachet numit GeoServer. Acest geoserver primeste date geografice si publică astfel de hărți .
In pagina mea django am de gând să folosesc o librărie javascript, Leaflet, pentru a afișa aceste hărți:
var map = L.map(mapDiv, mapOptions);
var wmsLayer = L.tileLayer.wms('http://link.harta-geo-server.org/exemplu/wms?', wmsOptions).addTo(map);
Sunt curios dacă pot face ca un client care a primit acces către o hartă să nu o poată distribui? Nu aș vrea ca el să dea un view-source/inspect-element pe pagină, să extragă link-ul din codul javascript și să îl folosească după bunul plac.
Nu stiu exact ce ar trebuie sa invat sa fac. Am nevoie de ceva termeni de specialitate (de documentat/ căutat pe google), indrumare, idei. Cum îi inpun clientului să vadă hărțile doar în pagina django, după logare.
Este posibil. Criptezi datele, obfuschezi codul js care despacheteaza în memorie jsonul pe segmente de viewport pe un canvas pe care pui doar o imagine generată cu watermarking aproape invizibil.
Există obfuscare destul de bună, e mai greu de deobfuscat față de decompilat.
În rest dacă se vede imaginea unei hărți oricum cineva care a făcut o hartă în viață o poate copia.
Poți face o aplicație cu electron să fie și mai greu de făcut debugging. Eu din câte înțeleg vrei doar să nu poată fi copiat automat, că manual se poate copia orice.
Daca te referi la harta ca imagine, poti sa faci screenshot la orice. Daca te referi la harta ca si slices of blocks in cadrul Leaflet, atunci se pot face metode de criptare si decriptare, dar sunt destul de costisitoare pt. browsers, in special daca hartile sunt mari.
Inainte sa treci la soluti hi-tech, cred ca e deajuns ca link-ul respectiv sa fie acccesibil doar clientilor logati, si sa forteti Referer-ul sa fie domeniul aplicatiei.
A doua limitare e deajunsa pentru a opri sharing prin browsere in principiu, lansand cale libera spre acces programatic insa.
Prima limitare e fix aceiasi nivel de securitate pe care-l ai cu Gmail/Facebook etc. Atata timp cat un client nu e confortabil sa-i dea altuia userul/parola/contul de facebook, n-o sa ai nici access la resursa aia decat de la utilizatorii care trebuie.
Presupun ca clientii astia sunt oameni normali, nu NSA sau CCC, asa ca n-ai de ce sa te duci in solutii complicate si/sau sa faci retooling spre native/electron etc. doar din cauza asta.
Si cum spune @navaru, screen-shot poate face oricine.
Cred ca este evident ca nu ai cum sa o protejezi complet - efortul de a o replica pe o platforma nativa mobila este mult mai mare, atat financiar cat si la nivel de expertiza. De asta am si sugerat varianta nativa, evident depinde de use case - desi hartile, UI-wise + GPS functioneaza mai bine pe o tableta in format nativ decat intr-un browser.
Bine in final cred ca este a moot point daca doar hartile in sine sunt partea critica si nu toata aplicatia.