come muoversi? postato il 10/09/2013 18:54:06 nel forum programmazione, gdrcd, open source, hosting
Buonasera a tutt*!
Per motivi di lavoro conosco (più o meno bene) alcuni linguaggi di programmazione come il C, il C++ ed il Fortran90 ed in generale il modo di programmare a fini scienifici e per hpc.
Quello che non conosco sono i linguaggi moderni (non prendetemi per vecchio, ancora sono a 26 :) ) e come funziona tutto quello che gira intorno ad un sito web che non sia fatto da sole 4 pagine di html.
Senza peccare di presunzione (nel caso smentitemi) credo che, sapendo programmare nei linguaggi sopra riportati, imparare le basi di php e css non sia impossibile.
Il punto che vorrei mi chiariste è: come imparare a mettere tutto sul web..
Mi spiego.
Quello che mi preoccupa è il gestire database, evitare perdita di dati o intrusione di malintenzionati e così via.
Ho cercato un po sul forum e ho trovato molti post sul "come programmare" o "come fare una land". Quello che vi chiedo è:
dando per scontato (sbaglio?) che un tizio riesca a capire e usare i linguaggi utili per creare una land, come si deve muovere per mettere tutto online in maniera sicura sia a livello di hackeraggio che a livello di database e dominio?
Sperando che non sia una questione banale spero di leggere delle interessanti risposte.
Grazie mille
Pagine → 1
10/09/2013 19:20:02
La cosa fondamentale è entrare nell'ottica web.
Lavorare con pagine web è molto differente dai linguaggi compilati, sia per quanto riguarda la logica di fondo, sia per la sintassi.
Per poter lavorare in maniera quasi completamente autonoma, le basi minime necessarie comprendono:
-Utilizzo base dell'SQL (select, insert, update)
-Linguaggio di scripting lato server (PHP è comunque quello più usato). La sintassi PHP è davvero molto somigliante a quella di C/C++, quindi se hai già le dovute conoscenze di base ti basta leggere i primi capitoli di un qualsiasi manuale PHP, tutto il resto lo intuirai da solo leggendo pagine già scritte. Se hai già dimestichezza con la programmazione OO cerca di studiarlo direttamente ad oggetti (anche se noterai che chiamarlo linguaggio "ad oggetti" è un bel parolone).
-Javascript. La sintassi è anch'essa molto somigliante al PHP (di conseguenza al C/C++), ed è davvero fondamentale per fare un sito che non sembri un blog del 1998. Se possibile studia direttamente jquery, un framework js largamente utilizzato sia per facilità di scrittura (la lunghezza delle istruzioni è ridotta all'osso) sia per l'ampia documentazione.
-CSS. Qua è abbastanza diverso dalla classica programmazione, non si tratta più di creare cicli, metodi o stampe, devi solo definire gli attributi stilistici (passami il termine) degli elementi html. Per buona regola tutto il codice css dovrebbe stare su un file separato, così da non incasinare la pagina HTML. In ogni caso è la parte più imprevedibile di tutte, se avrai modo di metterci mano sopra potrai apprezzare questa fantastica gif
-HTML. Vabbè, è HTML, si impara si e no in 3 giorni.
Se hai la possibilità, prendi un GDR-CD e comincia a studiarlo. Con i linguaggi web l'unico buon modo per impararli è provarli direttamente, dopotutto sono immediati e non richiedono compilazioni. Fai un po' di prove, distruggi il distruggibile e poi è il caso di iniziare a parlare di sicurezza.
In ogni caso una delle regole MADRE è sempre quella di controllare DUE VOLTE ogni dato che l'utente può modificare. Una volta lato client (via javascript magari), ed una lato server (onde evitare che qualche furbacchione eluda il primo controllo e passi indisturbato).
10/09/2013 23:50:56
Come dice darkabe, imparare per qualcuno che ha già conoscenze di programmazione è molto semplice.
Dal punto di vista della sicurezza ho paura che non ci sia una soluzione universale nè esatta, ma questo penso che sia una cosa comune a tutta la programmazione in generale (nell'ambito web è solo più pronunciata).
Secondo me ci sono tre punti da cui partire per iniziare a programmare qualcosa di sicuro (che comunque non si arriva mai al 100% di sicurezza, così come è molto difficile arrivare ad avere un programma completamente privo di bug):
1_Conoscere il sistema che si sta usando. Soprattutto nella programmazione web il sistema che si usa è composto da molti livelli, e non tutti potrai controllarli tu. Tipicamente tu controllerai l'ultimo livello (con PHP, ASP, etc) ma al di sotto c'è il server web (che si occupa delle richieste http. e.g.: nginx, apache, etc) il DBMS (che si occupa dei dati. e.g. mysql, mariadb, sqlserver) e il sistema operativo stesso (linux, windows...). Meglio conosci l'ambiente sul quale siede il tuo sito meglio potrai prevenire problemi di sicurezza.
2_Conosci il tuo nemico. Per poter prevenire attacchi al tuo sito è bene conoscere il più possibile le tipologie di attacchi che possono essere fatti. DDOS, Cross Site Scripting, SQL Injection, Cross Site Request Forgery, etc....
3_Il mantra che devi ripeterti continuamente mentre programmi un sito web: "Mai Fidarsi della Rete". Non fidarti mai di quello che ti arriva dalla rete, qualunque input va controllato per assicurarti che abbia esattamente la forma che deve avere. Non fidarti neanche che le tue difese lato client siano valide (HTML, controlli javascript, etc), perchè ciò che sta sul client è sempre manipolabile dall'utente e quindi è una difesa valida solo contro chi non ha veramente intenzione di danneggiarti (=difesa inutile).
11/09/2013 15:42:20
Grazie ad entrambi per le risposte.
Avete confermato ciò che avevo supposto e cioè la non eccessiva difficoltà nell'apprendere i linguaggi se si hanno delle buone basi di programmazione.
La questione sicurezza da come vedo è molto delicata.
In un programma C o C++ se c'è il bug ( e ci sta sempre :D ) al limite perdi i dati che stai elaborando in quel momento.
Qui invece si corrono rischi ben maggiori in cui possono andarci di mezzo anche gli utenti del sito...
Per quel che riguarda domini, server, database etc etc esistono delle regole generali?
Nel senso..io non ho la più pallida idea di quanto spazio di memoria mi serve per memorizzare le informazioni di 10, 50 o 100 utenti!!!
Domande banali forse...mi sento come quando mi hanno parlato dei puntatori per la prima volta :D
11/09/2013 17:41:38
Dipende da come è fatto il tuo progetto, che informazioni vuoi memorizzare etc.
Il mio gdr dopo 3 anni di attività ha un db da meno di 200MB e i file del sito stesso occupano meno di 30MB.
Comunque non preoccuparti delle taglie. Sicuramente per iniziare non partire da un server privato da gestire da solo però XD
Inizia da un semplice piano di hosting condiviso (ce ne sono anche gratuiti, come altervista e netsons) completamente gestito dal provider, in cui tu devi solo preoccuparti di dare forma al tuo sito con PHP, HTML e CSS.
13/09/2013 15:29:49 e modificato da blancks il 13/09/2013 15:31:18
Condivido le informazioni che ti sono state fornite, in particolare il punto 3 di leoblacksoul.
Riguardo la questione hosting, ok ce ne sono di gratuiti e via, ma personalmente ti consiglio di installare un webserver in locale sul pc dove poter fare i tuoi esperimenti.
A fine progetto osservi i "consumi" del tuo software, fai due stime ipotizzando qualche utente in più e allora cerchi un hosting che abbia le caratteristiche richieste dalla tua applicazione. Easy.
14/09/2013 10:11:23
Grandi!
mi avete dato molti spunti e informazioni utili.
il webserver locale sembra un'ottima soluzione per mettere le mani su un codice evitando tutti i problemi connessi al pubblicarlo in rete.
Ovviamente non ho come obiettivo 1000 utenti e richieste di risorse enormi ma la stima fatta da leo mi ha dato un ordine di grandezza!
grazie a tutti e tre!
Se mi vengono in mente altre domande non esiterò a postarle e spero che chiunque faccia altrettanto aggiungendo informazioni sull'argomento!
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
I dati del generatore di rank sono stati aggiornati!
Legacy of Magic: Gli Elementi Oscuri - La Nera Signora dell'Acqua
Hero Wars → Costruisci la tua squadra di eroi leggendari e domina il campo di battaglia! Strategia, tattica e potenza si scontrano in questo RPG ricco di azione!
Il gestore di W40K Dathyar ha risposto alla recensione di dreamboy
dreamboy ha recensito W40K Dathyar
Metin2: Live ora: Server Boost Yohara e Twitch Drop
OGame → In OGame migliaia di giocatori da tutto il mondo competono tra di loro per conquistare l'intero universo!
Epic Wizardry RP: Changelog N. 4 - Epic Wizardry Rp
drongo ha recensito Il Grande Blu
Pirates of the Caribbean: Tides of War: Quarti di finale del torneo
DarkOrbit: Galactic Strife & Buono gratis 💥
Sea of Conquest → Vivi un'avventura tra i mari! Dal cuore del Mare del Diavolo, un paradiso piratesco brulicante di magia, tesori e avventure, salperai verso l'ignoto!
Legacy of Magic: Il vecchio e la mappa
outrunstaff ha risposto alla discussione: Project OutRun PbC
meleys ha aperto un annuncio di ricerca: Westeros GDR ricerca Tester
Exclusive Villa GdR → Las Vegas, azzardo, vizi, soldi, intrighi... Più le sue luci sono scintillanti, più le sue ombre sono oscure. La città che non dorme mai, vi aspetta.
Multiverse eLot - Multiverse eLot: intervista al creatore della prima APP per un Play by Chat (eXtremelot)!
Giochi Hunter X Hunter - Lista completa dei giochi di ruolo online ambientati nel mondo di Hunter X Hunter
Pandemia e PbC - Play by Chat e Pandemia, un anno dopo, analisi di un nostro utente!
Lucca C&G 2019 - Le dieci cose che ci sono piaciute della splendida edizione 2019 di Lucca Comics and Games!
Grafica nei Gdr - Dalla programmazione alla grafica: quali strumenti per il vostro Gdr play by chat?
Owari GDR - Intervista alla gestrice di Owari GDR il play by forum dei Pokémon. Catturali tutti!