Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

przeklejanie z worda

5 views
Skip to first unread message

pol

unread,
Nov 1, 2009, 6:55:55 AM11/1/09
to
usersi czasem maja kaprys przeklejania tekstu z worda do textarea.
ja mam kaprys czyszczenia stringow z roznych znakow w moim przekonaniu
zbednych i ew. niebezpiecznych. usuwam m.in. & i ;
efekt jest taki, ze z tekstu przeklejanego z worda robia sie smieci np.
zamiast - wyswietla mi #8211 zamiast - (–)
pytanko czy podarowac sobie usuwanie & i ; i miec oki znaki czy lepiej
dalej rygorystycznie usuwac jak leci?

Wojciech Bancer

unread,
Nov 1, 2009, 9:47:10 AM11/1/09
to
On 2009-11-01, pol <vifi...@op.pl> wrote:

[...]

> pytanko czy podarowac sobie usuwanie & i ; i miec oki znaki czy lepiej
> dalej rygorystycznie usuwac jak leci?

A co jest niebezpiecznego w dopuszczeniu znak�w & i ;?

--
Wojciech Ba�cer
pro...@post.pl

porneL

unread,
Nov 1, 2009, 10:51:46 AM11/1/09
to

A mo�e zamiast niszczy� dane, to je obs�ugiwa� poprawnie?

Je�li zaufane osoby wklejaj�, to przepu�� kod przez HTML Tidy i ew. HTML
Purifier.


Je�li niezaufane, to nie zezwalaj na HTML, tylko wykonaj:

$text = html_entity_decode(strip_tags($html), ENT_QUOTES, 'UTF-8');

i wypisuj tekst na stronie poprzez:

htmlspecialchars($text);

Wtedy �aden znak nie b�dzie si� gubi�, nie b�dzie �adnych p�-encji i nikt
ci nie wklei exploita albo ukrytego spamu.

--
http://pornel.net
this.author = new Geek("porneL");

morwo

unread,
Nov 2, 2009, 3:38:48 AM11/2/09
to
On 1 Lis, 16:51, porneL <niu...@pornel.net> wrote:

> On Sun, 01 Nov 2009 11:55:55 -0000, pol <vifi1...@op.pl> wrote:
> > usersi czasem maja kaprys przeklejania tekstu z worda do textarea.
> > ja mam kaprys czyszczenia stringow z roznych znakow w moim przekonaniu
> > zbednych i ew. niebezpiecznych. usuwam m.in. & i ;
> > efekt jest taki, ze z tekstu przeklejanego z worda robia sie smieci np.
> > zamiast - wyswietla mi #8211 zamiast - (&#8211;)
> > pytanko czy podarowac sobie  usuwanie & i ; i miec oki znaki czy lepiej
> > dalej rygorystycznie usuwac jak leci?

Są też gotowe rozwiązania, jak plugin Paste w javascriptowym edytorze
TinyMCE. Gdy uruchomisz ten plugin to wszystkie śmieci wrzucane przez M
$-owskiego Worda. Ale to zawsze "obce" rozwiązanie ;)

kkh

unread,
Nov 2, 2009, 5:46:09 AM11/2/09
to
morwo <lukasz...@gmail.com> napisaďż˝(a):

> On 1 Lis, 16:51, porneL <niu...@pornel.net> wrote:
> > On Sun, 01 Nov 2009 11:55:55 -0000, pol <vifi1...@op.pl> wrote:
> > > usersi czasem maja kaprys przeklejania tekstu z worda do textarea.
> > > ja mam kaprys czyszczenia stringow z roznych znakow w moim przekonaniu
> > > zbednych i ew. niebezpiecznych. usuwam m.in. & i ;
> > > efekt jest taki, ze z tekstu przeklejanego z worda robia sie smieci np.
> > > zamiast - wyswietla mi #8211 zamiast - (&#8211;)

> > > pytanko czy podarowac sobie =A0usuwanie & i ; i miec oki znaki czy lepi=


> ej
> > > dalej rygorystycznie usuwac jak leci?
>

> S=B1 te=BF gotowe rozwi=B1zania, jak plugin Paste w javascriptowym edytorze
> TinyMCE. Gdy uruchomisz ten plugin to wszystkie =B6mieci wrzucane przez M
> $-owskiego Worda. Ale to zawsze "obce" rozwi=B1zanie ;)

Przede wszystkim to jest rozwiazanie po stronie klienta, wiec z punktu
widzenia bezpieczenstwa nic pewnego.


--
Wys�ano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

NEO.pl / PHPEncoder.pl

unread,
Nov 2, 2009, 5:56:18 AM11/2/09
to
kkh wrote on 2009-11-02 11:46:

> Przede wszystkim to jest rozwiazanie po stronie klienta, wiec z punktu
> widzenia bezpieczenstwa nic pewnego.

wiec str_replace() powinno zalatwic "problem". Tych znakow nie ma az tyle.

Pozdrawiam,
--
Szyfrowanie skryptow PHP v4 oraz v5. Blokady: czasowe, IP, MAC
Loadery dla systemow: Windows, Linux, MacOS, Free/BSD, Solaris
Zabezpiecz swoje skrypty PHP! Przetestuj http://phpencoder.pl

kkh

unread,
Nov 2, 2009, 6:10:41 AM11/2/09
to
NEO.pl / PHPEncoder.pl <in...@phpencoder.R3m0v3.pl> napisaďż˝(a):

> kkh wrote on 2009-11-02 11:46:
>
> > Przede wszystkim to jest rozwiazanie po stronie klienta, wiec z punktu
> > widzenia bezpieczenstwa nic pewnego.
>
> wiec str_replace() powinno zalatwic "problem". Tych znakow nie ma az tyle.


Mysle, ze problem rozwiazuje rada udzielona przez porneLa. A piszac bardziej
brutalnie: znajomosc funkcji PHP, znajomosc obslugi znakow w mediach
wspoplracujacych z PHP (HTML, BD), rozumienie jak przebiega skrypt i na czym
polegaja SQLinjcection, XSS itp. No niestety nie ma nic za darmo. Albo to
wszysko zrozumiemy albo bedziemy uprawiac szamanizm ;).

pol

unread,
Nov 2, 2009, 11:26:39 AM11/2/09
to
Dnia Sun, 01 Nov 2009 15:51:46 +0000, porneL napisał(a):

> On Sun, 01 Nov 2009 11:55:55 -0000, pol <vifi...@op.pl> wrote:
>
>> usersi czasem maja kaprys przeklejania tekstu z worda do textarea. ja
>> mam kaprys czyszczenia stringow z roznych znakow w moim przekonaniu
>> zbednych i ew. niebezpiecznych. usuwam m.in. & i ; efekt jest taki, ze
>> z tekstu przeklejanego z worda robia sie smieci np. zamiast - wyswietla
>> mi #8211 zamiast - (&#8211;) pytanko czy podarowac sobie usuwanie & i
>> ; i miec oki znaki czy lepiej dalej rygorystycznie usuwac jak leci?
>

> A może zamiast niszczyć dane, to je obsługiwać poprawnie?
>
> Jeśli zaufane osoby wklejają, to przepuść kod przez HTML Tidy i ew. HTML
> Purifier.
>
>
> Jeśli niezaufane, to nie zezwalaj na HTML, tylko wykonaj:


>
> $text = html_entity_decode(strip_tags($html), ENT_QUOTES, 'UTF-8');
>
> i wypisuj tekst na stronie poprzez:
>
> htmlspecialchars($text);
>

> Wtedy żaden znak nie będzie się gubił, nie będzie żadnych pół-encji i


> nikt ci nie wklei exploita albo ukrytego spamu.


hmmm no tak to chyba prostsze niz to moje ponizsze :)
ja przed zapisem do bazki czyszcze jak tylko sie da , a potem jeszcze na
wszelki wypadek przelatuje strip_tags i mysql_real_escape_string.... i
wszystko bylo by ok gdyby nie te cholerne encje ktorych pozbawiam & i ;

function clean($dane) {return str_replace(array
('`','~','$','%','^','&',NULL,';','/','{','}','|','\\','[',']'), "",
$data);}
function formularz($data) {return mysql_real_escape_string(trim
(strip_tags(clean(del_slash($dane)))));}

Koteczek

unread,
Nov 2, 2009, 4:31:29 PM11/2/09
to

>
> Mysle, ze problem rozwiazuje rada udzielona przez porneLa. A piszac
> bardziej brutalnie: znajomosc funkcji PHP, znajomosc obslugi znakow w
> mediach wspoplracujacych z PHP (HTML, BD), rozumienie jak przebiega
> skrypt i na czym polegaja SQLinjcection, XSS itp. No niestety nie ma
> nic za darmo. Albo to wszysko zrozumiemy albo bedziemy uprawiac
> szamanizm ;).

kurcze racja, racja chyba tez jestem htmlowy satanista...

to jak robic, tak jak porneL radzi ale jak tresc wyswietlam w input/ textarea a
co jak normalnie na stronie ?


Koteczek

unread,
Nov 2, 2009, 4:36:03 PM11/2/09
to

>
> function clean($dane) {return str_replace(array
> ('`','~','$','%','^','&',NULL,';','/','{','}','|','\\','[',']'), "",
> $data);}
> function formularz($data) {return mysql_real_escape_string(trim
> (strip_tags(clean(del_slash($dane)))));}

$search = array('&#8216;', chr(96), '&#8217;', '&#8222;', '&#8221;',
'&#8220;', '&#8230;', '&#8211;');
$replace = array("'", "'", "'", '"', '"', '"', '...', '-');
$_POST[$key] = str_replace($search, $replace, $_POST[$key]);


zobacz moje na worda, na razie sie sprawdza

glownie cudzyslowy rozne, wielokropek i myslnik a nie minus. Moze wiecej word
tez robi. Zobacz opcja word w fckeditor, ma opcje czyszczenia. U mnie to sie
sprawdza.

Ale np system sprawdza czy a-Z0-9 i podstawowe znaczki z klawiatury. Ale jak
ktos wpisze u umlatłt to juz sie czepia. Dosc lamersko to mam zrobione a
wszystko dlatego ze nie wiem jak to baza zapisze/ zapamieta i sie boje tego SQL
injection. Satanista glupi ze mnie ale moze ktos o tym napisal artykul? :)

Piotr Keplicz

unread,
Nov 2, 2009, 4:46:41 PM11/2/09
to
Koteczek:

> to jak robic, tak jak porneL radzi ale jak tresc wyswietlam w input/
> textarea a co jak normalnie na stronie ?

Tak samo.

.pk.

Bartosz Derleta

unread,
Nov 3, 2009, 11:16:42 AM11/3/09
to
W dniu 2009-11-02 22:36, Koteczek pisze:

>
>>
>> function clean($dane) {return str_replace(array
>> ('`','~','$','%','^','&',NULL,';','/','{','}','|','\\','[',']'), "",
>> $data);}
>> function formularz($data) {return mysql_real_escape_string(trim
>> (strip_tags(clean(del_slash($dane)))));}

> Ale np system sprawdza czy a-Z0-9 i podstawowe znaczki z klawiatury. Ale
> jak ktos wpisze u umlatłt to juz sie czepia. Dosc lamersko to mam
> zrobione a wszystko dlatego ze nie wiem jak to baza zapisze/ zapamieta i
> sie boje tego SQL injection. Satanista glupi ze mnie ale moze ktos o tym
> napisal artykul? :)

Ba, niejeden. Pierwszy z brzegu:

http://albi.vxe.pl/2008/12/26/kurs-pdo-podpinanie-parametrow-cz-1/
http://albi.vxe.pl/2009/02/22/kurs-pdo-podpinanie-parametrow-cz-2/

W ten sposób W OGÓLE nie musisz czyścić danych, chyba że w celach
estetycznych, natomiast przy wyświetlaniu potraktować zgodnie z
przeznaczeniem, czyli w HTML - htmlspecialchars(), etc.

--
Pozdrawiam,
Bartosz Derleta

0 new messages