A security component determines whether a request for a resource poses a
security risk to a computing device and verifies the integrity of the
requested resource before the request is allowed. For a request having
arguments and a resource path with a filename that identifies the
resource, the security component determines that the request does not
pose a security risk if the resource path does not exceed a maximum
number of characters, individual arguments do not exceed a maximum number
of characters, the arguments combined do not exceed a maximum number of
characters, and the filename has a valid extension. The security
component verifies the integrity of a requested resource by formulating a
descriptor corresponding to the resource and comparing the descriptor
with a cached descriptor corresponding to the resource.