Ben HTML çıktı üretimi için bir PHP sınıfı yazıyorum. Güvenlik nedenleriyle, bu sınıf bulmadan hiçbir kod çıktı gönderdi emin olmak gerekir. Burada aklıma iki seçenek vardır:
Option 1: As an assertion
if( !$this->headersSent ) {
assert( '!headers_sent()' );
$this->headersSent = true;
// ...
}
Option 2: Using an if
statement and die()
if( !$this->headersSent ) {
if( headers_sent() ) {
die( 'For security, refusing to continue: headers already sent.' );
}
$this->headersSent = true;
// ...
}
Wikipedia says, "İddialar mantıken imkansız durumları belgelemek ve programlama hataları keşfetmek için kullanılmalıdır."
- Bu sınıf, belirli bir uygulamanın parçası olduğunu, ve ben bu sınıfı kullanarak olmadan HTML çıkış göndermek için bir programlama hatası düşünün. Bu yüzden
assert()
kullanılmalıdır. - Öte yandan, bu uygulama bir gün açık kaynak kodlu hale gelebilir, ve birisi onu özelleştirmek olabilir. O iddialar kapalı olabilir ve bu yüzden çıkan güvenlik sorunu gözden kaçabilecek. Bu yüzden
die()
kullanılmalıdır.
Hangisi daha iyi bir uygulamadır?