Setting the ScriptTimeout on a (web) page is potentially dangerous: it changes the behavior of the website, on every request, and bypasses a globally configured value (web.config).
public class SomePage : System.Web.UI.Page
{
public int Other { get; set; }
public System.Web.HttpServerUtility XServer { get { return Server; } }
public void OnLoad()
{
System.Console.WriteLine(Server.ScriptTimeout); // Compliant, just reading the value.
this.Server.ScriptTimeout = 1; // Noncompliant
Server.ScriptTimeout = 2; // Noncompliant
XServer.ScriptTimeout = 3; // Noncompliant
Other = 4;
}
}
public class SomeSecurePage : SomePage
{
public int Other { get; set; }
public void OnLoad()
{
System.Console.WriteLine(Server.ScriptTimeout);// Compliant, just reading the value.
Server.ScriptTimeout = 6; // Noncompliant
Other = 7;
}
}
public class NoPage
{
public System.Web.HttpServerUtility Server { get; set; }
public void OnLoad()
{
Server.ScriptTimeout = 8 + 14; // Noncompliant
Server.ScriptTimeout += 9; // Noncompliant
Server.ScriptTimeout = Get10(); // Noncompliant
Server.ScriptTimeout -= 11; // Noncompliant
Server.ScriptTimeout *= 12; // Noncompliant
Server.ScriptTimeout /= 13; // Noncompliant
Server.ScriptTimeout >>= 15; // Noncompliant
Server.ScriptTimeout <<= 16; // Noncompliant
var x = Server; // Noncompliant
x.ScriptTimeout = 7; // Noncompliant
}
private int Get10() { return 10; }
}
Public Class SomePage
Inherits System.Web.UI.Page
Public Property Other As Integer
Public ReadOnly Property XServer As System.Web.HttpServerUtility
Get
Return Server
End Get
End Property
Public Sub OnLoad()
System.Console.WriteLine(Server.ScriptTimeout) ' Compliant
Me.Server.ScriptTimeout = 1 ' Noncompliant
Server.ScriptTimeout = 2 ' Noncompliant
XServer.ScriptTimeout = 3 ' Noncompliant
Other = 4
With Server
.ScriptTimeout = 5 ' Noncompliant
End With
End Sub
End Class
Public Class SomeSecurePage
Inherits SomePage
Public Property Other As Integer
Public Sub OnLoad()
System.Console.WriteLine(Server.ScriptTimeout) ' Compliant
Server.ScriptTimeout = 6 ' Noncompliant
Other = 7
End Sub
End Class
Public Class NoPage
Public Property Server As System.Web.HttpServerUtility
Public Sub OnLoad()
Server.ScriptTimeout = 8 + 14 ' Noncompliant
Server.ScriptTimeout += 9 ' Noncompliant
Server.ScriptTimeout = Get10() ' Noncompliant
Server.ScriptTimeout -= 11 ' Noncompliant
Server.ScriptTimeout *= 12 ' Noncompliant
Server.ScriptTimeout /= 13 ' Noncompliant
Server.ScriptTimeout \= 14 ' Noncompliant
Server.ScriptTimeout >>= 15 ' Noncompliant
Server.ScriptTimeout <<= 16 ' Noncompliant
Server.ScriptTimeout ^= 17 ' Noncompliant
Dim x As System.Web.HttpServerUtility = Server
x.ScriptTimeout = 18 ' Noncompliant
End Sub
Private Function Get10() As Integer
Return 10
End Function
End Class