Προσδιορισμός στοιχείων με URI
Ο προσδιορισμός στοιχείων στο πρωτόκολλο HTTP
γίνεται με τη χρήση των Uniform Resource Identifiers.
Αυτά ορίζονται από την παρακάτω γραμματική (RFC 2068):
URI = ( absoluteURI | relativeURI ) [ "#" fragment ]
absoluteURI = scheme ":" *( uchar | reserved )
relativeURI = net_path | abs_path | rel_path
net_path = "//" net_loc [ abs_path ]
abs_path = "/" rel_path
rel_path = [ path ] [ ";" params ] [ "?" query ]
path = fsegment *( "/" segment )
fsegment = 1*pchar
segment = *pchar
params = param *( ";" param )
param = *( pchar | "/" )
scheme = 1*( ALPHA | DIGIT | "+" | "-" | "." )
net_loc = *( pchar | ";" | "?" )
query = *( uchar | reserved )
fragment = *( uchar | reserved )
pchar = uchar | ":" | "@" | "&" | "=" | "+"
uchar = unreserved | escape
unreserved = ALPHA | DIGIT | safe | extra | national
escape = "%" HEX HEX
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+"
extra = "!" | "*" | "'" | "(" | ")" | ","
safe = "$" | "-" | "_" | "."
unsafe = CTL | SP | <"> | "#" | "%" | "<" | ">"
national = <any OCTET excluding ALPHA, DIGIT,
reserved, extra, safe, and unsafe>
Η χρήση τους επιτρέπει τον προσδιορισμό άλλων σελίδων τοπικά, σε άλλα
μηχανήματα, καθώς και ερωτήσεων:
http://kerkis.math.aegean.gr/~dspin/
http://www.altavista.com/cgi-bin/query?pg=q&text=yes&q=link%3akerkis%2emath%2eaegean%2egr%2f%7edspin+%2dhost%3akerkis%2emath%2eaegean%2egr&stq=10&c9k
Σημαντικά προβλήματα ασφάλειας που μπορούν να προκύψουν είναι τα παρακάτω:
- Το σύστημα DNS που μετατρέπει τα ονόματα σε διευθύνσεις δεν είναι ασφαλές
- Οποιοσδήποτε μπορεί να δημιουργήσει ένα URI.
Δεν πρέπει η ασφάλειά μας να βασίζεται σε "κρυμμένα" αρχεία ή στη χρήση
συγκεκριμένων URI.
- Με τον προσδιορισμό άλλων θυρών μπορεί ένα "αθώο" URI να "μιλήσει" σε άλλο
πρωτόκολλο (όχι HTTP) με καταστροφικά αποτελέσματα.
- Όταν ένα URI περιέχει συνθηματικό αυτό δεν μπορεί να είναι εμπιστευτικό.