سلام
در برنامه خودم یک فولدر image دارم که عکس کاربران را دران نگهداری میکنم
چطور می توانم کاری کنم کاربران به این فولدر بوصرت مستقیم دسترسی نداشته باشند
سلام
در برنامه خودم یک فولدر image دارم که عکس کاربران را دران نگهداری میکنم
چطور می توانم کاری کنم کاربران به این فولدر بوصرت مستقیم دسترسی نداشته باشند
directory browsing را غیرفعال کنید
https://docs.microsoft.com/en-us/iis...irectorybrowse
https://stackoverflow.com/a/9806524
(چک کنید با routing هم شاید بشه درخواست دسترسی به فولددر را گرفت)
دسترسی های مستقیم غیرمعتبر به فایلهای درون فولدر را بگیرید.
https://www.mikesdotnetting.com/arti...m-routehandler
http://sandblogaspnet.blogspot.com/2...-we-might.html
https://www.codemag.com/Article/0703...-HTTP-Handlers
https://stackoverflow.com/a/586016
حتی برای دسترسی به فایل، از اکشن/هندلر مخصوصی استفاده کنید که عکس را به صورت استریم برگرداند. در اینصورت هم اینکه کاربر آدرس عکس را نمی بیند و هم میتونید چک کنید کاربر اجازه دسترسی به آن عکس/فایل را دارد یا نه که این باعث عدم دسترسی به عکس دیگران میشه که در موارد خاص مثلا برای فایلهای خصوصی میتونید ازش استفاده کنید.
https://stackoverflow.com/a/5606575
https://blogs.msdn.microsoft.com/mia...troller-action
http://www.binaryintellect.net/artic...59947eafa.aspx
http://puresourcecode.com/dotnet/pos...-in-controller
با تشکر از پاسخ کامل جناب محمود افراد،
یک راه ساده هم اینه که مسیر اون فولدر رو با استفاده از یک هندلر داخلی مربوط به ASP.NET حفاظت کنید (به شرطی که برای خواندن فایل ها از آن فولدر توسط کد خودتان از روش مناسبی استفاده کنید). برای انجام این کار کافی است در web.config در بخش system.webServer یک بخش handler با محتویات زیر داشته باشید:
<handlers>
<add name="filesFolder" path="/files" verb="*" type="System.Web.HttpForbiddenHandler"/>
</handlers>