Geçerli Email Adresleri - XSS ve SQL Enjeksiyon

2 Cevap php

E-posta adresleri için çok geçerli karakter vardır beri, kendilerini XSS saldırıları veya SQL enjeksiyonu olabilir herhangi bir valid e-posta adresleri var mı? Ben web üzerinde bu konuda herhangi bir bilgi bulamadım.

The local-part of the e-mail address may use any of these ASCII characters:

  • Büyük ve küçük İngilizce harfler (a-z, A-Z)
  • Rakamlar 0-9
  • Karakterler! # $% & '* + / - =? ^ _ `{|} ~
  • Character . (dot, period, full stop) provided that it is not the last character, and provided also that it does not appear two or more times consecutively (e.g. John..Doe@example.com).

http://en.wikipedia.org/wiki/E-mail_address#RFC_specification

I'm not asking how to prevent these attacks (zaten parametrized sorguları kullanarak ve / HTML arıtma kaçan ediyorum), bu daha bir proof-of-concept.

Akla gelen ilk şey alanlarda izin verilmez dışında, 'OR 1=1--@gmail.com idi. Tüm SQL enjeksiyonu boşlukları gerektirir mi?

2 Cevap

Spaces onlar tırnak içinde eğer Ancak, izin, yani "'OR 1=1--"@gmail.com geçerli bir e-posta adresi vardır. Ayrıca, bir endişe, muhtemelen daha az, ama teknik olarak konuşursak, bu hem geçerli bir e-posta adresleri şunlardır:

' BAD SQL STUFF -- <fake@ryanbrunner.com>
fake@ryanbrunner.com (' BAD SQL STUFF --)

Bu mümkün değildi bile, paramaterized sorguları kullanarak ve kullanıcılara görüntülenen tüm kullanıcı-girilen veriyi kodlama olmamalıdır hiçbir neden hala var.

/^[a-z0-9.-_+]@[a-z0-9.-]$/i

i tüm e-posta adresleri% 99.9999 gibi maçları düşünmek ;)