PDA

View Full Version : ايجاد سيستم تصديق هويت کاربر به وسيله HTACCESS



AriaGlobal
دوشنبه 04 فروردین 1393, 01:42 صبح
با سلام

من براي تصديق هويت کاربر يک فايل HTACCESS براي مثال در اينجا در دايرکتوري test ايجاد کردم که محتواي فايل HTACCESS اينه :

AuthName "Restricted Area"
AuthType Basic
AuthUserFile C:/wamp/www/test/.htpasswd
AuthGroupFile /dev/null
require valid-user

و در همون دايرکتوري يک فايل HTPASSWD ايجاد ميکنم که در اون نام کاربري و کلمه عبور براي تصديق قرار گرفتند براي مثال در دايرکتوري test اين محتوا :

test:test
mehdi:semitic
admin:admin


خوب تا اينجا همه چي آرومه! هيچ مشکلي هم ندارم تو دايرتوري test هر فايلي رو براي دانلود بزرام ازم يوز نيم پس ورد ميخواهد حتي با IDM هم همينجوره
و اما سوال !!...

سوال اولم اينه که نميشه به جاي فايل HTPASSWD که درواقع فرمت اون تکست هست، نام کاربري و کلمه عبور ها از يک Url خونده بشه ؟ مثلا از اين آدرس domain.com/users.txt
و يا به اين شکل باشه که يوزنيم و پس وردي رو که کاربر درخواست تصديقش رو داده به اين ادرس ارسال کنه domain.com/a.php?user=mehdi&pass=semitic


و سوال اخر اينکه، سيستم هاي دانلود VIP از همين طريق HTACCESS دارند کار ميکنند، امکانش هست اگر با بروزر کاربر درخواست يک فايل رو داد به جاي نمايش اون کادر پيش فرض مرورگر که يوز، پس رو ميخواد يک صفحه لاگين HTML معرفي کنيم که نمايش داده بشه ؟

با تشکر.

Unique
دوشنبه 04 فروردین 1393, 18:11 عصر
اگه دارین از Basic Authentication خود Apache استفاده میکنید. دو مورد را مد نظر داشته باشین :

۱ - حتما از ssl استفاده کنین چون اگه نکنین کافیه مثلا من بدونم دوستم از سایت شما استفاده میکنه و توی wifi دانشگاه یا جای دیگه که public هست سه سوته user و pass را در بیارم چون فقط base64 میشه و ارسال میشه.

۲ - فایل htpasswd را خارج از دسترسی قرار بدین ،‌منظورم بیرون از wwwroot هستش.

اما بهترین روش برای authentication اینه که خودتون user و pass را از طریق GET یا POST یا از طریق همون HEADER (برای کار با Download Manager ها) بگیرین و بعد از اینکه دسترسی را چک کردین میتونین با X-SendFile از طریق apache فایل را با هر حجمی و با قابلیت Resume ارسال کنین.

AriaGlobal
دوشنبه 04 فروردین 1393, 18:58 عصر
اما بهترین روش برای authentication اینه که خودتون user و pass را از طریق GET یا POST یا از طریق همون HEADER (برای کار با Download Manager ها) بگیرین و بعد از اینکه دسترسی را چک کردین میتونین با X-SendFile از طریق apache فایل را با هر حجمی و با قابلیت Resume ارسال کنین.

درست متوجه اين قسمت نشدم، نحوه کار با X-SendFile و..
يه نمونه کد يا اسکريپت ميتونيد معرفي کنيد.. ؟

Unique
دوشنبه 04 فروردین 1393, 23:44 عصر
اینجا (http://www.jasny.net/articles/how-i-php-x-sendfile/) توضیح داده.
توی انجمن هم چند بازی خودم در مورد گفتم و توضیحاتی هم در مورد تنظیمات server داده ام. جستجو کنید ...