Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Criptare solo l'id nell'url con base64

    Poniamo che nell'url ci sia un get "id" che identifica un record nel database (pagina, articolo, ecc.). Al momento recupero i dati del record basandomi unicamente su questo id.

    Per evitare che un utente possa incrementare l'id manualmente, avrei pensato di criptare solo l'id in base64 e decodificarlo poi nel codice che uso.

    Secondo voi è una buona idea o è meglio se tenti un'altra strada? Perché ci sarebbero altre alternative, per esempio estrarre i record controllando sia l'id che il permalink, ma mi sembra una roba meno sicura...

    Per contro, criptando l'id sarei costretto ad applicare la funzione di criptazione a tutti i link del sito e a decriptarli ovunque serva.

  2. #2
    inserisci le righe con un id più efficace.

    PHP ha una funzioncina uniqid() che genera un id di 13 lettere.

    Non so perchè ma nessuno la usa mai.. tranne meeeeee!!! tranne meee!!

    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    Sarà perché non tutti leggono la documentazione come invece dovrebbero fare (io sto provvedendo, ma ci vuole tempo a "sfogliarla" tutta )

    Mi sto leggendo la pagina ufficiale di uniqid(). Fammi capire bene come usarlo, che non mi è molto chiaro:
    - associ a ogni record nel db un ulteriore campo crittografato con uniqid (chiamiamolo "id2").
    - nell'url faccio passare "id2", così l'utente non capisce cos'è
    - a livello di codice, leggo la corrispondenza di "id2", estraggo il record e recupero il suo vero id

    E' giusto il ragionamento o sto lavorando di fantasia?

  4. #4
    io lo salvo direttamente come viene generato..

    tipo: 5347a901b258b <- questo è un uniqid

    non è possibile "aggiungere 1" per selezionare altri contenuti
    Questa volta, più che un voto.. è favoreggiamento.

  5. #5
    Ottimo, adesso ci lavoro.
    Grazie per l'aiuto

  6. #6
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    inserisci le righe con un id più efficace.

    PHP ha una funzioncina uniqid() che genera un id di 13 lettere.

    Non so perchè ma nessuno la usa mai.. tranne meeeeee!!! tranne meee!!

    Non sei mica l'unico sai
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    Non sei mica l'unico sai
    Questa volta, più che un voto.. è favoreggiamento.

  8. #8
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    inserisci le righe con un id più efficace.

    PHP ha una funzioncina uniqid() che genera un id di 13 lettere.

    Non so perchè ma nessuno la usa mai.. tranne meeeeee!!! tranne meee!!

    Warning This function does not create random nor unpredictable strings. This function must not be used for security purposes. Use a cryptographically secure random function/generator and cryptographically secure hash functions to create unpredictable secure IDs.
    non essendoci garanzia di un codice univoco non è indicata per lo scopo proposto da Vincent. potresti obiettare che passando il secondo parametro come true si avrebbe un id sicuramente univoco ma non la vedo adatta come situazione

    Ho fatto un semplice test con l'interactive mode e stampando due volte di seguito il risultato della funzione mi da lo stesso id (senza il secondo parametro). Inoltre ipotizzando una tabella in cui non c'è un campo data inserimento ottenere l'ultimo record inserito diverrebbe più complesso.

    In merito a te vincent non vedo qual'è il problema se l'utente modifica manualmente l'url. Se ne fai un discorso di permessi allora la strada da seguire è un'altra
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  9. #9
    Quote Originariamente inviata da ciro78 Visualizza il messaggio
    non essendoci garanzia di un codice univoco non è indicata per lo scopo proposto da Vincent. potresti obiettare che passando il secondo parametro come true si avrebbe un id sicuramente univoco ma non la vedo adatta come situazione

    Ho fatto un semplice test con l'interactive mode e stampando due volte di seguito il risultato della funzione mi da lo stesso id (senza il secondo parametro). Inoltre ipotizzando una tabella in cui non c'è un campo data inserimento ottenere l'ultimo record inserito diverrebbe più complesso.
    per ora non ho mai avuto conflitti..

    For 128 bits, you'd need everybody in the US (300 million) to generate 1 million numbers per second for just about a day to get a 50% chance of a collision... For 512 bits, you'd need every body on earth (7 billion people) to generate 1 trillion numbers per second each for the next 10^47 years just to have a 50% chance of a collision..

    a meno che due files non vengano inseriti nello stesso micro-secondo uniqid è unico.

    Questa funzione non serve a criptare i dati. Questa funzione serve ad ottenere un sistema di ID univoci diverso dal solito "ID INT(4) AUTOINCREMENT".

    Questa volta, più che un voto.. è favoreggiamento.

  10. #10
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    per ora non ho mai avuto conflitti..




    a meno che due files non vengano inseriti nello stesso micro-secondo uniqid è unico.

    Questa funzione non serve a criptare i dati. Questa funzione serve ad ottenere un sistema di ID univoci diverso dal solito "ID INT(4) AUTOINCREMENT".

    come ti ho detto non avendola mai usata ho fatto un test in "interactive mode" e stampandola due volte di seguito ottengo lo stesso id. inserendo invece un ritardo di un secondo l'id è diverso. ovviamente ho ben chiaro a cosa serve una funzione del genere. ho solo detto che non portava vantaggi alla causa di vincent senza contare eventuali problemi di sort di record
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.