Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Passwordskydda en webfolder (.htaccess)

Tråden skapades och har fått 15 svar. Det senaste inlägget skrevs .
1

Hej!

Har försökt att lägga passwordskydd på en folder, där jag lagt phpmyadmin för att inte någon utifrån skall kunna surfa in på datorn och droppa mina mysqldatabaser, med hjälp av .htaccess.

Problemet är att det inte fungerar alls.

Någon som har receptet för att få detta att fungera?

Gå in i /Library/WebServer/Configuration/apache.conf och ändra följande ställe:

#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", None or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride None
Ändra sista raden till:

AllowOverride AuthConfig

starta om Apache med "apachectl restart".

...eller med "apachectl graceful" för lite snyggare omstart...

Citat:

Skapades ursprungligen av: Marcus Holmer:
Gå in i /Library/WebServer/Configuration/apache.conf...

Sökvägen existerar inte, och inte konfigurationsfilen heller...

prova den här istället då /etc/httpd/httpd.conf

Dags att föra upp den här diskussionen igen
jag kommer till /etc/hppd/httpd.conf/ genom att använda pico, men väl där kommer jag inte längre. Jag hittar inte textraden jag skall ändra!!

Mina webbfiler + .htaccess ligger i /Users/XXXXX/Sites/
Password filen (.htpassword) i /Users/XXXXX/Documents

Ändå lite hippt med Unix

Nån som kan hjälpa mig den sista lilla biten......

Anders

Gå ner till rad 398 så borde du hitta raderna som Marcus Holmer syftar på. Du kan också söka med pico.

Hittade, men funkar inte nu.....ändå!!
.htaccess ligger så fint i den mapp som skall vara skyddad
.htpassword ligger i annan mapp hos samma användare.

Är det fel....?

Anders

  • Oregistrerad
  • 2002-05-28 17:30

När jag gjort konfig-ändringar i min Apache så har har jag alltid gått in i httpd.conf i den globala strukturen och inte i Users-mappen. Kand et vara det?

Du har väl inte bara glömt starta om Apache?

Jepp, startat om enligt instruktion ovan.

Men det andra resonemanget, kan du utveckla det en aning?

Anders
(som fram till igår endast tittat lite på terminalen...)

Jag sitter och utvecklar en bildbibliotekshanterare, webbaserad, som skapar ©-märkta bilder från orginal on the fly.

Orginalens mapp måste dock hindras från åtkomst via browser - hur skall jag gå tillväga?

Som jag ser det finns det tre lösningar på problemet:

1) Lägga foldern utanför webhierarkin, och hoppas att php kan hämta bilder därifrån men inte browsern. Nackdel: inte säkert detta är möjligt att göra på ett webhotell

2) htaccesskydda foldern. Fråga: kan php i så fall hämta data ur den? Nackdel: kanske inte heller är möjligt på ett webhotell...

3) Adressa datan i querystringarna med id som sedan scriptet får hämta filnamn och path till vid genererandet av ex thumbnail... Nackdel: det blir en fruktansvärd massa anrop till databasen vid översiktssidorna...

Någon som har tips?

  • Medlem
  • Höganäs
  • 2002-05-28 20:04

Här finns en, som jag kan bedömma, utförlig beskrivning över hur Apache konfigureras.
Exemplet handlar om ett intranät, men till största delen är det applicerbart även på andra situationer.

Källan, O´Reilly, känns dessutom i högsta grad tillförlitlig...

(Ej ironi-smiley!)

Länken: http://www.oreillynet.com/pub/ct/49

[ 28 Maj 2002, 20:05: Meddelandet ändrat av: spacemanspiff ]

Citat:

quote:Skapades ursprungligen av: scooterbabe:
Jag sitter och utvecklar en bildbibliotekshanterare, webbaserad, som skapar ©-märkta bilder från orginal on the fly.

Orginalens mapp måste dock hindras från åtkomst via browser - hur skall jag gå tillväga?

Som jag ser det finns det tre lösningar på problemet:

1) Lägga foldern utanför webhierarkin, och hoppas att php kan hämta bilder därifrån men inte browsern. Nackdel: inte säkert detta är möjligt att göra på ett webhotell

2) htaccesskydda foldern. Fråga: kan php i så fall hämta data ur den? Nackdel: kanske inte heller är möjligt på ett webhotell...

3) Adressa datan i querystringarna med id som sedan scriptet får hämta filnamn och path till vid genererandet av ex thumbnail... Nackdel: det blir en fruktansvärd massa anrop till databasen vid översiktssidorna...

Någon som har tips?

1. Förmodligen det mest eleganta sättet. Förutsatt att webbhotellet ger möjlighet till det skulle jag använda den metoden.

2. Jupp, eftersom fpassthru() bara anropar filsystemet och lever lyckligt ovetande om .htaccess-filer kan man göra så.

3. Om jag förstått det rätt skulle du i sådana fall hålla reda på filnamn och sökväg till varje fil m h a databasen. I sådana fall: varför inte i stället använda enhetliga filnamn och sökvägar, så att php inte behöver göra databasförfrågningar för varenda bild?

Citat:

quote:Skapades ursprungligen av: Christopher A. Papastefanou:
När jag gjort konfig-ändringar i min Apache så har har jag alltid gått in i httpd.conf i den globala strukturen och inte i Users-mappen. Kand et vara det?

Ja men /etc/hppd/httpd.conf är väl i den globala strukturen så vitt jag kan se...

  • Medlem
  • Höganäs
  • 2002-05-28 22:00

Här kommer ett långt inlägg!
(Från utmärkta O´Reilly-sidan jag hänvisade till i några trådar hägre upp)
Har just provat och det funkade. Filen ".htaccess" läggs i den mapp du vill lösenordsskydda, även i mitt fall phpMyAdmin.
Här kommer urklippet:

Password Authentication

One of the most common uses of .htaccess files is password-protecting a directory. When protected directories are accessed, a visitor´s browser will prompt for a username and password. If the visitor authenticates correctly, they´re allowed in -- if not, an error 401 is triggered, and the visitor is denied.

So yes, Dan from Marketing, we did get your email (and its annoying and frequent follow-ups), and yes, we´re going to password protect the "super secret ad campaign" directory you´ve been working oh-so-hard on (snicker, snicker, reese´s pieces).

To start the process, we´re first going to create the user database. This database will contain all the usernames and passwords that will be authenticated against -- they´re not keyed to any specific directory, so you could use one database for three hundred users spread across two dozen directories. To create the database, get into your Terminal, and gaze blurry eyed at the command below:

htpasswd -c /Library/WebServer/.htpasswd dan

It´s nice and innocent, right? htpasswd is the name of the utility that creates and modifies this user database of ours. The -c flag says "if this database doesn´t exist, create it." /Library/WebServer/.htpasswd is the full path to our database file, and you´ll want to take special notice that it´s outside Apache´s DocumentRoot (which, in OS X, is defined as /Library/WebServer/Documents). Sticking the file outside the DocumentRoot ensures that no one can view this database from the Web. Finally, dan is the user that you want to add to the database. An output of this command is below:

htpasswd -c /Library/WebServer/.htpasswd dan
New password: ********
Re-type new password: ********
Adding password for user dan

You´ll want to make sure that when you add new users to an existing database file that you do not use the -c flag. Doing so will overwrite your existing file with a brand new one. Not so good, bub. Adding a user is a simple matter (note the lack of the -c flag):

htpasswd /Library/WebServer/.htpasswd mishka
New password: *********
Re-type new password: *********
Adding password for user mishka

If you look at /Library/WebServer/.htpasswd, you´ll see the added users:

less /Library/WebServer/.htpasswd
dan:Vcv7xTIIW6g7U
mishka:3c4T6IdfWweU

Next, it´s really just a matter of telling Apache what directory we want to secure. Open (or create) your .htaccess file, and add the following:

AuthName "Uber Goober Ad Campaign"
AuthType Basic
AuthUserFile /Library/WebServer/.htpasswd

require valid-user

AuthName will be shown as the title or description of the password box that a visitor´s browser will show, and in Apache lingo, this is called a "realm". AuthType is set to the standard "Basic" authentication (a "Digest" authentication exists, but is outside the scope of this article). AuthUserFile should be self-explanatory.

The require line affords some discussion. With it, you can tell Apache to allow any user in the AuthUserFile access (as we´ve done above), or you can tell Apache to allow only certain people. In the example below, only the users "dan" and "mishka" can authenticate to realms with the name "Uber Goober Ad Campaign." Any other users in the AuthUserFile will be denied:

require user dan mishka

Users can also be defined by groups -- for example, you could place "dan," "mishka," and "morbus" into a group called "Marketing," and "themadman," "ashcraft," and "sprocket" into a group called "Design." From there, you could restrict access by group instead of username. For these configurations and more about Digest authentication, refer to Apache´s Authentication, Authorization, and Access Control docs.

___

Ja. Lättare att besöka sidan där Terminalkommandona är färgkodade.



[ 28 Maj 2002, 22:02: Meddelandet ändrat av: spacemanspiff ]

Citat:

quote:Skapades ursprungligen av: Samuel K:
3. Om jag förstått det rätt skulle du i sådana fall hålla reda på filnamn och sökväg till varje fil m h a databasen. I sådana fall: varför inte i stället använda enhetliga filnamn och sökvägar, så att php inte behöver göra databasförfrågningar för varenda bild?

Så här är det: tanken är att man skall slippa ha ett webformulär där man laddar upp bilder en och en. Istället laddar man via ftp upp en hel folder bilder, går in i sin administrationsdel som har en "finder", bläddrar fram sin nyuppladdade mapp och väljer att indexera denna.

Bilderna publiceras sedan efter vilken kategori man har lagt dem till, exempelvis kategori "vänner". Eftersom kategori är skilt från folder och namn måste databasen innehålla information om vilken filen är. Därför ligger de i databasen med namn och sökväg. Dock hämtas alla bilder till vald kategori med endast en sql-sats, varvid endast ett anrop sker.

Klart?

1
Bevaka tråden