Har ett litet problem. Jag skulle vilja spärra användare från att visa bilder i ett speciellt directory när de skriver in sökvägen direkt i adressfältet. Dock skall bilderna visas när man länkar dem i ASP-sidorna. Tror att det blir tufft på IIS, jag offrade ngn minut för ett tag sen för att hítta den lösningen. Jag gick bet. Kan man inte fixa det med MIME Map, som ligger i fliken HTTP Headers under Web Properties? Kollade på MIME Map, men om jag förstått det hela rätt så verkar den godkänna vissa filtyper rakt av. Jag gjorde 2 exempel i javascript som inte skriver ut sökvägen i klartext. Inte riktigt som du beskriver det, men jag tror det är så nära du kan komma. Det jag menade, var väl att associera .gif med nåt annat än IIS, t.ex med frameworket istället, då kan frameworket ta hand om anropen och göra en redirect, eller vad man nu vill... Tack för alla svar. ..lite svårare kan du ju också göra genom att kolla HTTP_REFERER om den hör till din domän eller inte, (iofs, inte alla skickar med referer dock..) Ett sätt är ju att skapa en session och nästla in bilderna i if-sats. Om sessionen har ett (visst) värde ska den visa bilderna, är sessionen = "" så ska den inte visa bilderna. Kanske ett långskott, men vad händer om du sparar dina bilder i en databas och hämtar bilden därifrån och sedan renderar den på sidan?Visa ej bilder vid direkt URL
Ex.
bilden bilder/123.gif visas ok på sidan 123.asp, men om användaren skriver in www.123.se/bilder/123.gif så skall den inte visas.
Dessutom skall bilden självklart spärras även om någon försöker länka till den via en extern sida.
Går detta att lösa?Sv: Visa ej bilder vid direkt URL
Men på Apache skall det gå.
(jag hoppas att jag har fel ang IIS och att ngn berättar en lösning, det vore kanon även för mig)Sv: Visa ej bilder vid direkt URL
Har inte nån aning om det funkar, men det verkar lovande...Sv: Visa ej bilder vid direkt URL
Jag vill ju kunna visa bilderna i "min" domän, men inte via extern länkning eller för den delen direkt på sökvägen till bilden.
Kan man lösa det via någon annan form av döljning typ att koden inte skriver ut sökvägen i klartext...?Sv: Visa ej bilder vid direkt URL
Den första är bara lite kod, men inte så svår att knäcka, det går göra den svårare dock.
Den andra är mycket kod men riktigt jobbig att knäcka.
/AC
1.
<code>
<script language="JavaScript">
<!-- Begin
var name;
function picjpg(name){
document.write('<img src="' + name + '.' + 'jpg' + '">');
}
//-->
// End -->
</script>
<script language="JavaScript">picjpg("bild");</script>
</code>
2.
<code>
<html>
<head>
<script>
<!--
// Add or remove characters to 'alphabet' in the same way as shown.
// Any characters not in alphabet will be ignored when encrypting.
alphabet = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','(',')','~','!','@','#','$','%','^','&','*','-','=','+','_','.',',','`','{','}','[',']','|','\'','\\','\"','/','?',':',';','>','<',' ','\n');
// Temporary array for when producing binary numbers. Longer length = better encryption.
// Note: the max binary number must be more than the alphabet length.
// there must be an 'a' at the end of the array.
tempbin = new Array("0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","a");
// Binary numbers stored here and refer to original alphabet.
binary = new Array();
// Variables for the jumbled(encrypted) alphabet, decrypted text, and encrypted text.
var encalphabet;
var decrypted;
var encrypted;
// function to make the binary numbers
// l = current position
// len = binary number length
// z = current number
// The rest is straight forward - figure it out for your self.
function makebinary(l,start,z) {
if (l < 0)
return;
if (tempbin[l] == "1") {
tempbin[l] = "0";
x = makebinary(l-1,start,z);
}else if (tempbin[l] == "0"){
tempbin[l] = "1";
}else if (tempbin[l] == "a"){
tempbin[l] = "0";
}
if (l == start) {
binary[z] = "";
for (i = 0; i <= l; i++)
binary[z] += tempbin[i];
}
return;
}
// Calls makebinary() to make enough numbers for all of alphabet.
for (z = 0; z < alphabet.length; z++) {
makebinary(tempbin.length-1,tempbin.length-1,z);
}
// Checks to see if a letter (alphabet[x]) is in encalphabet so there are no duplicates in encalphabet.
function in_encalphabet(x) {
if (x == -1)
return 0;
z = alphabet[x];
for (i = 0; i < encalphabet.length; i++) {
if (z == encalphabet.substr(i,1))
return 0;
}
return 1;
}
// Encrypt function (well duh!!)
function encrypt(name) {
// Set start values
decrypted = document.enc_form.decrypted.value;
encalphabet = "";
encrypted = "";
// Make encalphabet (ie. jumble alphabet)
for (i = 0; i < alphabet.length; i++) {
x = -1;
while (in_encalphabet(x) == 0)
x = Math.floor(alphabet.length*Math.random());
encalphabet += alphabet[x];
}
temp = encalphabet;
// First level of encryption.
// Uses encalphabet's order to jumble text.
for (i = 0; i < decrypted.length; i++) {
for (z = 0; z < encalphabet.length; z++) {
if (decrypted.substr(i,1) == alphabet[z]) {
temp += encalphabet.substr(z,1);
break;
}
}
}
// Second level of encryption.
// Sets everything into binary.
for (i = 0; i < temp.length; i++) {
for (z = 0; z < alphabet.length; z++) {
if (temp.substr(i,1) == alphabet[z]) {
encrypted += binary[z];
break;
}
}
}
// Display encrypted text.
document.enc_form.decrypted.value = encrypted;
}
// This is obviously the decryption function.
function decrypt(name) {
// Set initial values.
encrypted = name;
encalphabet = "";
temp = "";
decrypted = "";
// Go from binary to first level encryption (ie. Still jumbled).
for (i = 0; i < encrypted.length; i+=tempbin.length) {
for (z = 0; z < alphabet.length; z++) {
if (encrypted.substr(i,tempbin.length) == binary[z]) {
temp += alphabet[z];
break;
}
}
}
// Set the order of the alphabet (into encalphabet) from jumbled text.
for (i = 0; i < alphabet.length; i++)
encalphabet += temp.substr(i,1);
// Unjumble the text.
while (i < encrypted.length) {
for (z = 0; z < encalphabet.length; z++) {
if (temp.substr(i,1) == encalphabet.substr(z,1)) {
decrypted += alphabet[z];
break;
}
}
i++;
}
// Display the decrypted text.
document.write('<img src="' + decrypted + '">');
//document.write(decrypted);
}
//-->
</script>
</head>
<body>
<form name="enc_form">
<textarea name="decrypted" cols=60 rows=10></textarea>
Encrypt
</form>
<script language="JavaScript">decrypt('00000000010001010000000000100000000000000001011000000000000010110000000001011110000000000001011100000000010110010000000001001101000000000011100100000000001100110000000000110010000000000011110000000000010000110000000000100110000000000000010000000000001010000000000001010110000000000011110100000000010111010000000000010100000000000001001100000000000110000000000000111110000000000011000000000000001011010000000001010111000000000001001000000000010010100000000001010100000000000010011100000000001010010000000001000110000000000000110100000000010110100000000000011111000000000101000000000000000111000000000000001010000000000100001000000000010110000000000000110101000000000001000000000000000000110000000000110001000000000101110000000000001010110000000000100010000000000001110100000000000111100000000000001111000000000100111000000000000101010000000000011011000000000011011100000000000010000000000001000000000000000100000100000000010110110000000001001001000000000101001000000000000110100000000000111000000000000000011100000000000011000000000001010101000000000100111100000000000000010000000000101111000000000010010000000000000001100000000000111111000000000001100100000000010001110000000000111011000000000100100000000000010010110000000000100101000000000010000100000000000011100000000000101110000000000000010100000000000100010000000000101100000000000101001100000000001101100000000001001100000000000011010000000000000000000000000000001001000000000100010000000000001000110000000001011111000000000011101000000000001010100000000000000010000000000101000100000000010010100000000000011111000000000000101000000000001001110000000000100001000000000101000000000000000100000000000000001101');</script>
</body>
</html>
</code>Sv: Visa ej bilder vid direkt URL
How do I prevent people from 'leeching' my images?
<URL:http://www.aspfaq.com/show.asp?id=2276>Sv: Visa ej bilder vid direkt URL
Sv: Visa ej bilder vid direkt URL
Skall prova detta vid tillfälle.
Vill bara avsluta med ett citat på frågan om det går att säkerställa att inga bilder sprids från webplatsen (hämtat från en av sidorna jag besökt i detta ämne): "Nej!"
Tyvärr verkar det inte finnas något helt tillförlitligt sätt, men som sagt jag skall prova mig fram med era svar och kanske kan man iaf göra det lite jobbigare för andra att använda mina bilder...Sv: Visa ej bilder vid direkt URL
Sv: Visa ej bilder vid direkt URL
Sv: Visa ej bilder vid direkt URL
(Kan alldeles för lite om det eftersom det är lite mer praxis att spara bild i filsystem och sedan en filref i db)