php htmlspecialchars'ın

3 Cevap

giriş ne tür ben htmlspecialchars kullanıyor olmalıdır? ya da ben hep girdi verileri sterilize etmek için kullanmak gerekir? veya fonksiyonları daha iyi 'hijyen veri' vardır? Yani bu değerler bir veritabanında saklanır varsayarak

Örnek:

$userdata = array(
 'username' => $_POST['username'],
 'email' => $_POST['email'],
 'password' => $_POST['password']
);

// register function defined in a class user accepts array as parameter
// register function hashes password before storage
$this->user->register($userdata);

ben bu verilere htmlspecialchars başvurmalıdır?

3 Cevap

htmlspecialchars'ın bir kullanıcı bu hiç geri kullanıcıların herhangi görüntülenen girer any verilerine kullanılmalıdır. Eğer bilgi bile 1 parça için kullanmak istemiyorsanız, bir Cross Site Scripting saldırı için kendinizi açtık.

Veritabanına bilgi ekleyerek ya da bir yere kaydederken, o zaman düzgün bir veritabanı için kaçmak isterim, bunu kullanmak olmaz. Bu SQL injection açığını önlemek olacaktır.

Adından da anlaşılacağı gibi, htmlspecialchars Eğer HTML çıktısı içinde bir dize çıkış yaparken çağrılacak amaçlanmıştır. Örneğin:

<input type="text" name="username" value="<?= htmlspecialchars($user->name) ?>" />

Oraya çağırarak tırnak, köşeli ve bu düzgün bunların ilgili kişilere &quot;, &lt;, &amp;, vb kodlanmış olmasını sağlar

Sen htmlspecialchars veritabanı verilerini kullanarak olmamalıdır. Eğer çıkış zaman bunu saklamak değil zaman, metni Escape.

Ben zaman htmlentities() en kullanacaktır.

Eğer verileri görüntüleyen yaparken genellikle veri, bunları uygulayın.

Örneğin

Eğer var $str = '<iframe src="http://someurl..." />';

Çıkış yaparken htmlentitiesi kullanırsanız, < ve> html varlık haline dönüştürülür - < ve >