Version [3829]
Dies ist eine alte Version von WikkaWikiSafeHTML erstellt von WojciechLisiewicz am 2022-06-18 20:39:38.				
				
WikkaWiki => SafeHTML
Umstellung von alter PHP-Version
Meldung:
	Fatal error: Uncaught Error: Attempt to modify property "handler_default" on null in /usr/local/www/wdb/3rdparty/core/safehtml/classes/HTMLSax.php:556... und noch viel länger (statt 556 auch 494)
Lösung: nicht so einfach...
Bei WackoWiki wird SafeHTML entwickelt (denke ich mal). Möglicherweise ist der beste Weg für WikkaWiki, die neueste Version von dort in 1.4.2 zu integrieren...
A. Einbindung neuer Version:
Einzelne Schritte:
	1.  Neue Version bei Wacko-Wiki geholt
2. Unter 3rdparty/core/safehtml/ gespeichert
3. Änderungen bei Einbindung:
	
2. Unter 3rdparty/core/safehtml/ gespeichert
3. Änderungen bei Einbindung:
	in libs / wakka.class.php:
	=> function ReturnSafeHTML($html) ab ca. Zeile 712
	in wikka.config.php:
	=> 'safehtml_path' => '3rdparty/safehtml', (ca. Zeile 35)
	(Pfad auf neue Version geändert)
	in 3rdparty / safehtml / safehtml.php
B. Wie wird SafeHTML in WikkaWiki eingebunden
Folgende Dateien sind betroffen / hier taucht ein Verweis darauf auf:
	Variablen:
- wikka.php
 
- wikka.config.php
 
	Funktionen werden aufgerufen:
- formatters.wakka.php (2x)
 
- formatters/html.php (2x)
 
- libs/Wakka.class.php (viele)
 
- actions/rss/rss.php
 
- actions/image/image.php
 
- actions/files/files.php
 
- actions/googleform/googleform.php
 
- actions/textsearchexpanded/textsearchexpanded.php
 
	Sonstige:
- lang/en/FormattingRules.txt
 
- lang/pl/FormattingRules.txt
 
Ergebnis von grep -r -i "safehtml" wdb:
		wdb/wikka.php:	'safehtml_path'				=> '3rdparty/core/safehtml',
	wdb/wikka.config.php:	'safehtml_path' => '3rdparty/core/safehtml',
	wdb/setup/inc/db_update_mysql.php:		rmdirr("safehtml");
	wdb/formatters/wakka.php:				 SafeHTML will treat this but 'raw' may end up with invalid code!
	wdb/formatters/wakka.php:					return $wakka->ReturnSafeHTML($newembedded);
	wdb/formatters/html.php:				 SafeHTML will treat this but 'raw' may end up with invalid code!
	wdb/formatters/html.php:					return $wakka->ReturnSafeHTML($newembedded);
	wdb/libs/Wakka.class.php:	 * @uses	Config::$safehtml_path
	wdb/libs/Wakka.class.php:	 * @uses	SafeHTML::parse()
	wdb/libs/Wakka.class.php:	function ReturnSafeHTML($html)
	wdb/libs/Wakka.class.php:		$safehtml_classpath = $this->GetConfigValue('safehtml_path').'/classes/safehtml.php';
	wdb/libs/Wakka.class.php:		require_once $safehtml_classpath;
	wdb/libs/Wakka.class.php:		$safehtml = instantiate('safehtml');
	wdb/libs/Wakka.class.php:		$filtered_output = $safehtml->parse($html);
	wdb/libs/Wakka.class.php.save:	 * @uses	Config::$safehtml_path
	wdb/libs/Wakka.class.php.save:	 * @uses	SafeHTML::parse()
	wdb/libs/Wakka.class.php.save:	function ReturnSafeHTML($html)
	wdb/libs/Wakka.class.php.save:                    #print $safehtml_classpath;
	wdb/libs/Wakka.class.php.save:                    #$safehtml = instantiate('safehtml');
	wdb/libs/Wakka.class.php.save:                    #$filtered_output = $safehtml->parse($html);
	wdb/libs/Wakka.class.php.save:		$safehtml_classpath = $this->GetConfigValue('safehtml_path').DIRECTORY_SEPARATOR.'classes'.DIRECTORY_SEPARATOR.'safehtml.php';
	wdb/libs/Wakka.class.php.save:		require_once $safehtml_classpath;
	wdb/libs/Wakka.class.php.save:		$safehtml = instantiate('safehtml');
	wdb/libs/Wakka.class.php.save:		$filtered_output = $safehtml->parse($html);
	wdb/lang/pl/defaults/FormattingRules.txt:Domyślnie niektóre polecenia HTML są usuwane, celem zabezpieczenia przed potencjalnie niebezpiecznym kodem. Więcej informacji na ten temat: Wikka:SafeHTML.
	wdb/lang/en/defaults/FormattingRules.php:printf(T_('By default, some HTML tags are removed by the %s parser to protect against potentially dangerous code.  The list of tags that are stripped can be found on the %s page.'), 'SafeHTML', 'Wikka:SafeHTML');
	wdb/actions/rss/rss.php: * @uses		Wakka::ReturnSafeHTML()
	wdb/actions/rss/rss.php:	echo $this->ReturnSafeHTML($cached_output);
	wdb/actions/image/image.php:wdb/actions/table/table.php: * @uses	Wakka::ReturnSafeHTML()
	wdb/actions/table/table.php:	echo $this->ReturnSafeHTML($cached_output);
	wdb/actions/googleform/googleform.php: Sanitization: Passing $query to htmlspecialchars_ent instead of ReturnSafeHTML(). Inside the value parameter of the input field,
	wdb/actions/files/files.php: * @uses	Wakka::ReturnSafeHTML()
	wdb/actions/files/files.php:		Although $output is passed to ReturnSafeHTML, it's better to sanitize $text here. At least it can avoid invalid XHTML.
	wdb/actions/files/files.php:	$output = $this->ReturnSafeHTML($output);
	wdb/actions/files/files.php:	$output = $this->ReturnSafeHTML($output);
	wdb/actions/textsearchexpanded/textsearchexpanded.php: * @uses	Wakka::ReturnSafeHtml()
	wdb/actions/textsearchexpanded/textsearchexpanded.php:$result_page_list = $this->ReturnSafeHtml($result_page_list);
	wdb/3rdparty/core/safehtml/classes/HTMLSax_old.php: If you'll use unmodified HTMLSax, Safehtml will be NOT SAFE!
	wdb/3rdparty/core/safehtml/classes/safehtml.php:  SafeHTML Parser.
	wdb/3rdparty/core/safehtml/classes/safehtml.php:  http://pixel-apes.com/safehtml
	wdb/3rdparty/core/safehtml/classes/safehtml.php:class safehtml {
	wdb/3rdparty/core/safehtml/classes/safehtml.php:  function safehtml() {
	wdb/3rdparty/core/safehtml/classes/HTMLSax.php: If you'll use unmodified HTMLSax, Safehtml will be NOT SAFE!
	wdb/3rdparty/core/safehtml/readme.txt:SafeHTML
	wdb/3rdparty/core/safehtml/readme.txt:http://pixel-apes.com/safehtml
	wdb/3rdparty/core/safehtml/readme.txt:Please, subscribe to http://pixel-apes.com/safehtml/feed/rss feed in order to receive notices 
	wdb/3rdparty/core/safehtml/readme.txt:when SAFEHTML will be updated.
	wdb/3rdparty/core/safehtml/readme.txt: * New array, closeParagraph, contains list of block-level elements. When we open such elemet, we should close paragraph before. . It allows SafeHTML to produce more XHTML compliant code.
	wdb/3rdparty/core/safehtml/readme.txt: * Now SafeHTML strips down table elements when we are not inside table.
	wdb/3rdparty/core/safehtml/readme.txt: * Now SafeHTML correctly closes unclosed "li" tags: before opening "li" of the same nesting level.
	wdb/3rdparty/core/safehtml/readme.txt: Bug fix: safehtml hangs on <style></style></style> code.
	Binary file wdb/sql/wikka_sqlite3.db matches
C. Aktuelle Version von SafeHTML nutzen
Nach Erläuterung bei Wacko-Wiki wird es so eingebunden:
<b>Example:</b>
$parser = new SafeHTML;
$result = $parser->parse($doc);
Benötigt wird aber auch HTMLSax3 - mit folgenden Dateien:
_HTMLSax3
|_HTMLSax3.php
|_HTMLSax3
	|_Decorators.php
	|_States.php
Diese Seite wurde noch nicht kommentiert.