J'ai du code dans ASP qui place les valeurs dans un champ de texte dans SQL Server à l'aide de requêtes paramétrées. Je me demandais si le paramétrage suffisait, ou si je devais chercher des commandes potentielles sur le terrain, en remplaçant les simples ticks par des doubles ticks, etc. Les champs de texte sont des essais, ils peuvent donc avoir un nombre quelconque de mots ou de caractères.Prévention de l'injection SQL dans les champs TEXT de SQL Server à l'aide de ASP classique
Suis-je en sécurité?
sSQL="[usp_SaveDocumentGradeCriteria]"
Set dbCommand = Server.CreateObject("ADODB.Command")
Set dbCommand.ActiveConnection = oConn
dbCommand.CommandType = adCmdStoredProc
dbCommand.Commandtext=sSQL
dbCommand.Parameters.Append (dbCommand.CreateParameter("@CriteriaXML", adLongVarChar, adParamInput, len(saveXML), saveXML))
dbCommand.Parameters.Append (dbCommand.CreateParameter("@Comments", adLongVarChar, adParamInput, len(commentText), commentText))
dbCommand.Parameters.Append (dbCommand.CreateParameter("@documentGUID", adGuid, adParamInput, 0, documentGUID))
dbCommand.Parameters.Append (dbCommand.CreateParameter("@graderFYCUserID", adInteger, adParamInput, 0, fycuserid))
dbCommand.Parameters.Append (dbCommand.CreateParameter("@graderSequence", adInteger, adParamInput, 0, graderSequence))
if trim(grade)<>"" then
dbCommand.Parameters.Append (dbCommand.CreateParameter("@grade", adInteger, adParamInput, 0, grade))
end if
set oRST=dbCommand.Execute
Bons points. Je suis plus préoccupé par le point d'invocation depuis que j'ai sécurisé la procédure dans T-SQL. Devra trouver une bonne ressource sur le filtrage des tentatives XSS. Des idées? – Caveatrob
http://support.microsoft.com/kb/252985, http://support.microsoft.com/kb/253119/ –
@Caveatrob Utilisez l'expression régulière pour vérifier si certains éléments ne figurent pas dans votre texte.Par exemple, limiter l'utilisateur à utiliser de "<",">", mieux encore juste faire Encodage sur soumettre et décoder sur récupérer, cela permettra d'éclairer toute possibilité d'injection SQL et de fournir une sécurité pour le contenu. –