Programiranje Za programere i one koji to žele postati ... |
|
26.01.2025., 13:36
|
#1
|
Registrirani korisnik
Registracija: Jul 2011.
Postova: 14,889
|
Sustav naplate za masovno korišteni web servis
Ne kužim se baš u ovaj dio, pa ako netko ima iskustva da napiše poneku.
Recimo da imamo web aplikaciju/web servis kojeg bi se htjelo naplaćivati većem broj korisnika za manje novce, nešto kao pretplata (mjesečno, polugodišnje, godišnje) i da to nisu neki veliki novci, po par eura mjesečno do par desetaka eura godišnje.
Je li ima neki sustav naplate koji je jeftin i da radi automatski?
Recimo da bi većina klijenata bila fizičke anonimne osobe.
|
|
|
26.01.2025., 15:38
|
#3
|
Sneguljac-patuljak nudist
Registracija: Mar 2004.
Lokacija: shire
Postova: 18,424
|
Gle di god su plaćanja i kreditne kartice tu ti je PCI DSS i ostali ini standardi.
Bježi koliko te noge nose od toga. Vjeruj mi na riječ, sudjelovao sam u sličnim projektima.
Uzmi nekog vanjskog kome je to core bussines, npr. u HR su ti dobri CorvusPay, Stripe, bili su oni iz Rijeke zaboravio sam kako se zovu...
Dakle trenutak upisa kartice i samo plaćanje neka odrade ovi vanjski, a ti preko RESTA dobiješ status plaćeno ovo ono, a lova ti sjeda na račun preko tog payment providera.
Ti se fokusiraj da imaš dobar servis i uslugu koju nudiš, a pusti ove šta rade plaćanje da se bave sa tim.
Ajd uzdravlje. 
|
|
|
26.01.2025., 16:02
|
#4
|
Registrirani korisnik
Registracija: Nov 2009.
Postova: 57,654
|
Naplata internet servisa ne podrazumijeva samo kartično plaćanje.
Može biti i direktno s (dediciranog) računa, ali i uplata određene svote gotovinom preko banke/FINE na određeni account.
Znači, imamo više stavri:
1. identifikaciju (Authentication, Authorization) korisnika
2. obračun troškova identificiranog korisnika (Accounting)
3. naplata troškova od identificiranog korisnika
Bez (1) nema (3). Kako ja vidim, GemsBond pita kako identificirati korisnika bez da zna njegov fizički/pravni identitet, dakle (1), i onda osigurati naplatu usluga (3).
Zadnje kada sam ja plaćao par sitnica preko fizičke uplatnice u banci, Hrvatskoj pošti, plus slanje novca fizičkoj ili pravnoj osobi (račun za struju npr.), morao sam upisati i pokazati osobnu iskaznicu i OIB na šalteru.
Jedan od načina za koje znam mimo ovih su prepaid bonovi za mobitel. Možeš transferirati određene manje sume na drugi broj mobitela istog operatera. Naravno sve je vezano na tel.broj mobitela i jednistveni broj fizičkog uređaja IMEI, tako da je lako identicifirati pošiljatelja i primatelja.
Naravno, tu je i plaćanje raznih virtualnih gadgeta preko on line igara.
|
|
|
26.01.2025., 16:11
|
#5
|
Registrirani korisnik
Registracija: Jul 2011.
Postova: 14,889
|
Quote:
ruka-slave kaže:
|
Trenutno je to tek na razmišljanju, ali moglo bi jako skoro postati aktualno.
Ideja je bila nešto ovako.
Korisnik se ulogira u sustav, preko nekog od google, facebook i sličnih accounta, ideja je da većina ne mora kod mene složiti account sa svim onim potvrdama preko emaila i slično, ali vjerojatno bi i kod mene bilo neki OAuth2 npr. keycloak koji bi to omogućavao.
Postojala bi osnovna funkcionalnost bez plaćanja, ograničena.
Oni koji bi htjeli više, trebali bi platiti, razmišljao sam na način da korisnik sam može otići na stranicu na svojem profilu npr. ponudu gdje bi složio da mu random izgenerira neki kod kojeg bi priložio kod uplate.
Kad mi sjedne potvrda da je plaćeno preko tog koda, onda bi omogućio pristup dodatnim sadržajima na rok za koliko je kupljeno.
Pretpostavljam da se kod većine načina plaćanja može taj izgenerirani kod zalijepiti negdje npr. u opis plaćanja ili slično, kako bi ja dobio potvrdu da je platio baš taj određeni korisnik.
To je osnovna ideja.
Paypal nisam koristio, vidim da pošiljatelj treba platiti neku proviziju, s obzirom da ovo moje ne bi bilo jako skupo, ni provizija ne bi trebala biti nešto velika.
Sljedeća opcija je preko payment gatewaya, tu ima opcija da se koristi tuđe kao što je grogo napisao ili ići implementirati svoje i pregovarati direktno s bankom proviziju. Za nekog početnika bolje prvo, bez obzira što je provizija veća.
Pretpostavljam da ima i nekih drugih stvari sličnih paypalu.
Ima li možda nešto slično kako se plaćaju bonovi na mobitelu, kao dodatna opcija a da nije nešto jako nepovoljno.
Bi li ovo moglo funkcionirati na način kako sam to opisao?
|
|
|
26.01.2025., 16:35
|
#6
|
Registrirani korisnik
Registracija: Jul 2011.
Postova: 14,889
|
pretpostavljam da treba i fiskalizirati uplate fizičkih osoba, neki račun izdati
također bi imao i poslovne subjekte kao korisnike kojima bi trebalo izdavati R1 i slično
kako bi bilo super da postoji neki plug&play sustav, da se ne mora puno oko ovoga trošiti vremena
|
|
|
26.01.2025., 17:44
|
#7
|
Registrirani korisnik
Registracija: Nov 2009.
Postova: 57,654
|
Čim si organiziraš posao da ti Facebook/Google/štagod organiziraju AAA, propao si, oni te izjedaju.
AAA nije naplata. Naplata je posebni problem.
|
|
|
26.01.2025., 18:07
|
#8
|
Registrirani korisnik
Registracija: Jul 2011.
Postova: 14,889
|
Quote:
ruka-slave kaže:
Čim si organiziraš posao da ti Facebook/Google/štagod organiziraju AAA, propao si, oni te izjedaju.
AAA nije naplata. Naplata je posebni problem.
|
to je danas standardna funkcionalnost da se na neki web site možeš ulogirati i preko google, facebook, stackoverflow, linkedin i sličnih sustava, zato jer onda ne moraš proći proceduru registracije novog klijenta na svakom web site-u
te platforme nemaju pristup na tvoj web site, nego ti samo kažu je li logiranje uspjelo ili nije, ako je uspjelo onda korisniku dozvoliš pristup
|
|
|
26.01.2025., 18:26
|
#9
|
Registrirani korisnik
Registracija: Nov 2009.
Postova: 57,654
|
Quote:
GemsBond kaže:
to je danas standardna funkcionalnost da se na neki web site možeš ulogirati i preko google, facebook, stackoverflow, linkedin i sličnih sustava, zato jer onda ne moraš proći proceduru registracije novog klijenta na svakom web site-u
te platforme nemaju pristup na tvoj web site, nego ti samo kažu je li logiranje uspjelo ili nije, ako je uspjelo onda korisniku dozvoliš pristup
|
Ne, nije tako.
Svaka od tih platformi je uvezana sa svakom drugom.
Npr. kao ilustracija, ja kao anoniman korisnik browsam forum.hr.
Moji podaci sa svime što sam browsao i pisao završe u roku par sekundi u NSA datacentru negdje u Nevadi.
|
|
|
26.01.2025., 19:22
|
#10
|
Registrirani korisnik
Registracija: Jul 2011.
Postova: 14,889
|
Quote:
ruka-slave kaže:
Ne, nije tako.
Svaka od tih platformi je uvezana sa svakom drugom.
Npr. kao ilustracija, ja kao anoniman korisnik browsam forum.hr.
Moji podaci sa svime što sam browsao i pisao završe u roku par sekundi u NSA datacentru negdje u Nevadi.
|
ovo o čemu se piše je tzv. social login
da, postoje moguće zloupotrebe, npr. web site može pokupiti neke informacije o klijentu koje budu vraćene u ID tokenu
s druge strane i google/facebook može evidentirati korisnikova logiranja na aplikacije, pratiti ponašanje korisnika i onda prodati te podatke npr. nekoj firmi
ono što google/facebook ne mogu je da vide tvoj promet unutar tvojeg sustava
|
|
|
26.01.2025., 20:40
|
#11
|
Registrirani korisnik
Registracija: Nov 2009.
Postova: 57,654
|
Quote:
GemsBond kaže:
ovo o čemu se piše je tzv. social login
da, postoje moguće zloupotrebe, npr. web site može pokupiti neke informacije o klijentu koje budu vraćene u ID tokenu
s druge strane i google/facebook može evidentirati korisnikova logiranja na aplikacije, pratiti ponašanje korisnika i onda prodati te podatke npr. nekoj firmi
ono što google/facebook ne mogu je da vide tvoj promet unutar tvojeg sustava
|
Zapravo, mogu, i to rade.
Svaki upis svakog klijenta na svakom web serveru na bilo kojoj platformi i svjetu prolazi kroz "framework", tj. library ogromnog broja funkcija, od kojih mnoge šalju podatke svojim kreatorima.
Bukvalno sve što pišete se šalje u centralu, obrađuje i pohranjuje u vašem profilu.
|
|
|
26.01.2025., 20:59
|
#12
|
Registrirani korisnik
Registracija: Jul 2011.
Postova: 14,889
|
Quote:
ruka-slave kaže:
Zapravo, mogu, i to rade.
Svaki upis svakog klijenta na svakom web serveru na bilo kojoj platformi i svjetu prolazi kroz "framework", tj. library ogromnog broja funkcija, od kojih mnoge šalju podatke svojim kreatorima.
Bukvalno sve što pišete se šalje u centralu, obrađuje i pohranjuje u vašem profilu.
|
open source tu pomaže zato što svatko može vidjeti je li u neki kod ubačeni neki trojanski element i često se skupi ekipa koja to stvarno i istražuje
hash koji se dobije iz tog open sourcea ti garantira da nije netko nešto petljao po kodu prije nego što si ga instaliraš
spring boot kojeg koristim je isto open source
|
|
|
26.01.2025., 21:48
|
#13
|
Registrirani korisnik
Registracija: Nov 2009.
Postova: 57,654
|
Quote:
GemsBond kaže:
open source tu pomaže zato što svatko može vidjeti je li u neki kod ubačeni neki trojanski element i često se skupi ekipa koja to stvarno i istražuje
hash koji se dobije iz tog open sourcea ti garantira da nije netko nešto petljao po kodu prije nego što si ga instaliraš
spring boot kojeg koristim je isto open source
|
Što znači Open Source?
Imaš cijeli source code program pa ga možeš analizirati?
Svih 10 milijuna linija koda koje sam ja držao u glavi, a to je bio mali fragment?
"Hash" code (MD5, SHA-1, šta god) je samo potvrda identiteta koda, ne i da u kodu nema loših namjera.
|
|
|
26.01.2025., 22:26
|
#14
|
Registrirani korisnik
Registracija: Jul 2011.
Postova: 14,889
|
Quote:
ruka-slave kaže:
Što znači Open Source?
Imaš cijeli source code program pa ga možeš analizirati?
Svih 10 milijuna linija koda koje sam ja držao u glavi, a to je bio mali fragment?
"Hash" code (MD5, SHA-1, šta god) je samo potvrda identiteta koda, ne i da u kodu nema loših namjera.
|
da, imaš uvid u source kod, ako je nešto popularno tu postoji zajednica developera koja koristi taj softver pa neki od njih provjere a drugi njima vjeruju da je ok, ali isto tako nije u interesu izdavača softvera da ugradi trojance ili backdoorove u svoj kod jer ako ga otkriju, onda ode njegova reputacija
hash se izračuna za cijeli modul ili neki softver i onda ako promijeniš samo jedan znak npr. obrišeš space, onda ti hash više neće biti isti i to znači da je netko mijenjao i ne instaliraš tu verziju
|
|
|
26.01.2025., 23:39
|
#15
|
Registrirani korisnik
Registracija: Nov 2009.
Postova: 57,654
|
Quote:
GemsBond kaže:
da, imaš uvid u source kod, ako je nešto popularno tu postoji zajednica developera koja koristi taj softver pa neki od njih provjere a drugi njima vjeruju da je ok, ali isto tako nije u interesu izdavača softvera da ugradi trojance ili backdoorove u svoj kod jer ako ga otkriju, onda ode njegova reputacija
hash se izračuna za cijeli modul ili neki softver i onda ako promijeniš samo jedan znak npr. obrišeš space, onda ti hash više neće biti isti i to znači da je netko mijenjao i ne instaliraš tu verziju
|
J*beš hash, to je glupa funkcija koja potvrđuje da je onaj koji joj vjeruje dovoljno glup da ga možeš zajebati.
Kako znaš da ti proizvođač softvtera nije ugradio Trojanca?
|
|
|
27.01.2025., 10:25
|
#16
|
Registrirani korisnik
Registracija: Jul 2011.
Postova: 14,889
|
Quote:
ruka-slave kaže:
J*beš hash, to je glupa funkcija koja potvrđuje da je onaj koji joj vjeruje dovoljno glup da ga možeš zajebati.
Kako znaš da ti proizvođač softvtera nije ugradio Trojanca?
|
imaš source kod kojeg se može provjeriti i otkriti trojanca ili backdoor
općenito, što više korisnika koristi neki tuđi library, logičnije je da su mogući problemi u njemu već detektirani i ispravljeni
i sad, ako imaš više korisnika u toj zajednici, zna se naći neki od njih koji se profesionalnije bave s tim da provjere taj source kod, često znaju i donacije skupljati da ih zajednica potpomogne u tom njihovom poslu i od toga imaju koristi svi koji koriste taj softver
npr.
današnji moglo bi se reći de facto standard što se sigurnosti web aplikacija tiče je OAuth2/OIDC skup protokola
oko tih protokola napravljeno je stotine rješenja u kojima su implementirani dijelovi tih standarda, neka od tih rješenja su zatvoreni souce, neka su otvoreni source
jedno od češće korištenih rješenja je softver Keycloak koji je opensource i kojeg održava zajednica, na githubu piše da ih je uključenih 1274 u održavanje
Keycloak se reklamira kao identity provider, ukratko ima mogućnost autentifikacije, autorizacije i još neke specijalne efekte, meni je zanimljiv najviše zbog authetifikacije
zajednica je velika i ja se oslanjam na to da će ta zajednica isfiltrirati moguće bugove i popraviti ih
|
|
|
27.01.2025., 15:21
|
#17
|
Registrirani korisnik
Registracija: Nov 2009.
Postova: 57,654
|
A tko kontrolira KeyCloak ili kako se već zove.
Nemoj mislit da te pilam bez veze, ja sam ovo prošao stotine puta. Deset milijuna programskog koda imaš doslovce u glavi, u svako doba dana i noći. I onda se nađe jedan (brojkom:1) momak koji je krenuo nešto modificirati jer eto. Pa onda više nije, kad mu doslovce pokažeš dio koda.
Ti se oslanjaš na to da će ti velike brojke riješiti pitanje povjerenja. Možeš se jednako tako pouzdati na ptice s obližnjeg stabla, vjerojatno smreke.
Dakle, ključno je AAA.
Onog trenutka kada prvu A (authentication) predaš u ruke drugoj firmi, tvoj je posao pokojni.
|
|
|
27.01.2025., 15:54
|
#18
|
Registrirani korisnik
Registracija: Jul 2011.
Postova: 14,889
|
Quote:
ruka-slave kaže:
A tko kontrolira KeyCloak ili kako se već zove.
Nemoj mislit da te pilam bez veze, ja sam ovo prošao stotine puta. Deset milijuna programskog koda imaš doslovce u glavi, u svako doba dana i noći. I onda se nađe jedan (brojkom:1) momak koji je krenuo nešto modificirati jer eto. Pa onda više nije, kad mu doslovce pokažeš dio koda.
Ti se oslanjaš na to da će ti velike brojke riješiti pitanje povjerenja. Možeš se jednako tako pouzdati na ptice s obližnjeg stabla, vjerojatno smreke.
Dakle, ključno je AAA.
Onog trenutka kada prvu A (authentication) predaš u ruke drugoj firmi, tvoj je posao pokojni.
|
Keycloak je samo jedan od proizvoda kojeg ja trenutno koristim, ovo je lista sličnih proizvoda https://en.wikipedia.org/wiki/List_of_OAuth_providers
Keycloak je server kojeg instaliraš i konfiguriraš kod sebe (ili negdje u cloud, ali to se isto računa kao da pripada tebi), preporuka je da se smjesti iza reverznog proxyija ili API gatewaya kako bi se onemogućio direktan pristup na taj server, na taj način se pojača sigurnost sustava.
Nakon logiranja keycloak će ti vratiti access token i refresh token koje koristiš za pristup ostalim serverima koje koristiš za biznis.
|
|
|
27.01.2025., 16:10
|
#19
|
Registrirani korisnik
Registracija: Nov 2009.
Postova: 57,654
|
Quote:
GemsBond kaže:
Keycloak je samo jedan od proizvoda kojeg ja trenutno koristim, ovo je lista sličnih proizvoda https://en.wikipedia.org/wiki/List_of_OAuth_providers
Keycloak je server kojeg instaliraš i konfiguriraš kod sebe (ili negdje u cloud, ali to se isto računa kao da pripada tebi), preporuka je da se smjesti iza reverznog proxyija ili API gatewaya kako bi se onemogućio direktan pristup na taj server, na taj način se pojača sigurnost sustava.
Nakon logiranja keycloak će ti vratiti access token i refresh token koje koristiš za pristup ostalim serverima koje koristiš za biznis.
|
Ti naravno znaš što je reverzni proxy i koje su razine anonimizacije kroz proxy server?
Ne bih htio docirati, ali ako se hoćeš baviti nečim, možda bi trebao nešto o tom poslu naučiti.
Znaš kako ide: ili ćeš naučiti prije, ili poslije. Meni osobno paše da naučiš poslije al sam maličak subjektivan. 
|
|
|
27.01.2025., 16:47
|
#20
|
Registrirani korisnik
Registracija: Jul 2011.
Postova: 14,889
|
Quote:
ruka-slave kaže:
Ti naravno znaš što je reverzni proxy i koje su razine anonimizacije kroz proxy server?
Ne bih htio docirati, ali ako se hoćeš baviti nečim, možda bi trebao nešto o tom poslu naučiti.
Znaš kako ide: ili ćeš naučiti prije, ili poslije. Meni osobno paše da naučiš poslije al sam maličak subjektivan. 
|
ovu arhitekturu slažem, sve komponente, ne samo full-stack programiranje https://www.baeldung.com/spring-clou...way-bff-oauth2
ako malo skrolaš doći ćeš do slike gdje se vidi o čemu se radi
to slažem je se radi o preporukama iz jednog RFCa što se tiče sigurnosti web aplikacija od 2024., radi se o implementaciji tzv. BFF patterna koji handlea access i refresh tokene na način da ih u potpunosti uklanja iz web browsera jer tamo nisu sigurni i smješta ih na BFF server
u RFC dokumentu kojeg sam spomenuo se nalazi smjernica da se oauth2 autorizacijski server (to je ovaj keycloak kojeg spominjem) stavi iza reverznog proxija jer se na taj način diže sigurnost
reverzni proxy omogućava još jednu stvar, tzv. SAMEORIGIN koji je bitan kako bi serveri koji se nalaze na različitim domenama i protokolima mogli dijeliti cookije sa web aplikacijom koja se vrti u web browseru
sad kad lokalno razvijam, koristim nginx server kao reverzni proxy, u kubernetesu će to možda biti neki ingress kad dođe vrijeme da deployam u kubernetes
na toj slici ima još jedan pomoćni reverzni proxy, BFF je isto reverzni proxy, zapravo jača verzija toga poznata kao API gateway i preko njega se ide na resource server (onaj server koji radi nešto pametno, npr. spaja se na bazu podataka)
|
|
|
 |
Sva vremena su GMT +2. Trenutno vrijeme je: 09:17.
|
|
|
|