Ben dinamik öznitelik değeri kullanıcı tarafından sağlanan bir unsur niteliği için bir XPath sorgusu inşa etmek gerekir. Ben bir SQL enjeksiyonu saldırısı XPath eşdeğer engellemek için bu değeri temizlik veya sanitasyon hakkında gitmek nasıl emin değilim. (PHP) Örneğin:
<?php
function xPathQuery($attr) {
$xml = simplexml_load_file('example.xml');
return $xml->xpath("//myElement[@content='{$attr}']");
}
xPathQuery('This should work fine');
# //myElement[@content='This should work fine']
xPathQuery('As should "this"');
# //myElement[@content='As should "this"']
xPathQuery('This\'ll cause problems');
# //myElement[@content='This'll cause problems']
xPathQuery('\']/../privateElement[@content=\'private data');
# //myElement[@content='']/../privateElement[@content='private data']
Özellikle sonuncusu eskiden SQL enjeksiyon saldırıları andırıyor.
Şimdi, çift tırnak içeren tek tırnak ve özelliklerini içeren nitelikleri olacak bir gerçeği biliyorum. Bu bir işleve argüman olarak sunulmaktadır beri, ne bunlar için girdiyi ideal bir yol olurdu?