2011-04-10 58 views
0

我想阻止用戶在Web應用程序的上傳文件夾(/ assets/public /)中運行特定的擴展名。用戶可以上傳圖片文件,這些文件在上傳過程中也進行了重新設置。但對於更多的安全我想要拒絕像ASPX,ASP,PHP腳本...拒絕代碼執行IIS7與web.config

我當前的代碼,每塊擴展,但我想允許如.jpg擴展名:

<location path="assets/public"> 
    <system.web> 
     <authorization> 
      <deny users="*"/> 
     </authorization> 
    </system.web> 
</location> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 

此外,用戶還做沒有FTP訪問和應用程序預編譯。

+0

您的意思是託管案例?當用戶使用本地Web.config註冊自己的擴展名時使用? – abatishchev 2011-04-10 19:30:53

+0

用戶已授予僅限資產/公用文件夾的上傳訪問權限,並且客戶沒有FTP。我不希望用戶或黑客能夠運行遠程腳本。 – 2011-04-10 19:47:57

+0

請發佈一些用戶的假設配置文件 – abatishchev 2011-04-10 19:52:09

回答

0

嘗試

<httpModules> 
    <clear /> 
</httpModules> 

<location path="." inheritInChildApplications="false"> 
</location> 
+0

「已檢測到ASP.NET設置不適用於集成管理管道模式。」第一個選項錯誤,第二個選項無效。 – 2011-04-10 19:48:54

+0

@Hasan:請參閱[this qeestion](http://stackoverflow.com/questions/4209999/an-asp-net-setting-has-been-detected-that-does-not-apply-in-integrated-managed- pi)關於第一個問題 – abatishchev 2011-04-10 19:51:47

+0

解決了錯誤,但沒有解決任何問題,對不起。 – 2011-04-13 16:54:17

-2

這是我如何解決了這個用的Global.asax和路由。剛剛添加了這些規則:

routes.MapPageRoute("any", "assets/public/{file}.{ext}", "~/e/404.aspx"); 
routes.MapPageRoute("any-sub","assets/public/{sub}/{file}.{ext}","~/e/404.aspx"); 

routes.Ignore("{any}.jpg"); 
routes.Ignore("{any}.png"); 
routes.Ignore("{any}.gif"); 
routes.Ignore("{any}.pdf");