Arquivo da tag: Expressão Regular

Removedor de injeção de SQL

Olá pessoal.

Segue um simples código para remover uma possível injeção de SQL.

O código simplesmente substitui o que é considerado perigo por vazio. O legal é o uso do método Replace da classe Regex (expressões regulares) que ignora o case não momento da substutição dos valores.

using System.Text.RegularExpressions;


public static string RemoveInjecao(string texto)
{
	string[] caracteresInvalidos1 = { "select ", "drop ", "--", "insert ", "delete ", "xp_", "'", "%", "update ", "group by ", "having ", @"sum(", @"count(", "alter table", " – ", "–", " –", "– ", "varchar", "declare", @"cast(", @"exec(" };

	for (int i = 1; i < caracteresInvalidos1.Length; i++)
	{
		//replace que ignora o case (maiúsculo/minúsculo)
		texto = Regex.Replace(texto, caracteresInvalidos1[i], "", RegexOptions.IgnoreCase); 
	}	
	return texto.Trim();
}

Fica a dica!

Validar a quantidade de caracteres num TextBox MultiLine (TextArea)

Sabemos que para transformar o ServerControl TextBox em TextArea temos que mudar sua propriedade TextMode para o valor MultiLine. Também sabemos que via HTML não é possível limitar o tamanho de um TextArea por meio do MaxLength como é feito num Input Text. Isso pode ser contornado com o uso de Javascript.

Usando o controle ASP.NET RegularExpressionValidator e a expressão regular ^.[sS]{0,500}$, é possível validar a quantidade de caracteres inseridas num TextBox MultiLine (TextArea). Na expressão acima, o valor 500 é a quantidade máxima de caracteres que desejamos no TextBox MultiLine (TextArea).

<asp:TextBox ID="TextBox1" runat="server" Height="93px" TextMode="MultiLine" Width="381px"></asp:TextBox>
<br />
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox1"
  ErrorMessage="Ultrapassou 500 caracteres." ValidationExpression="^.[sS]{0,500}$">
</asp:RegularExpressionValidator>

Bom proveito.