![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 6 Dołączył: 3.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jak mozna stworzyc wyszukiwarke w ktorej mozna wpisywac jakies wyrazenie regularne, a potem wyszukac w bazie?
Przyklad: Mam strone a na niej wyszukiwarke, ktora szuka userow. Wpisuje w wyszukiwarce .arek W mysql wyszuka i dostane rekordy: Marek Darek itp. Jak to mozna wykonac? Tak aby bylo zabezpieczone przed jakimis atakami np SQL injection. I mozna bylo korzystac z normalnych slow i regex? Niestety slabo znam sie na regex i nie mam pojecia jak to wykonac. Dzieki za odpowiedz. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
A czemu nie użyć sql keyword : "LIKE" ?
http://www.htmlite.com/mysql011.php a w ogóle to masz też słowo REGEXP, np:
A przed sql injection się zabezpieczysz tak jak zwykle - escapując cydzysłowia Ten post edytował konrados 23.10.2010, 16:25:19 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 6 Dołączył: 3.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
No tak, tylko regex tez bym musial jakos zabezpieczyc. Bo mozna stworzyc regex tak aby obejsc i zaatakowac.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli użyjesz go do funk. select i zamienisz wszelkie ' na \' a " na \" to nie wiem jakby można to było zaatakować.
Ale może ktoś mądrzejszy się wypowie? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Można by napisać takie wyrażenie, które zabije bazę danych.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
@Crozin
Chodzi Ci o to, że byłoby strasznie czasochłonne czy coś poważniejszego? Ten post edytował konrados 23.10.2010, 21:27:33 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
A to nie jest wystarczająco poważne?
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
No nie aż tak jak jakiś sql injection
![]() A dałoby się zapisać taki killer-expression w np. 10 znakach? Bo jak nie, to zabezpieczeniem mogłoby być ograniczenie stringa do 10. No chyba, że się da... Ten post edytował konrados 23.10.2010, 21:40:24 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 301 Pomógł: 25 Dołączył: 15.07.2007 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Pewnie się da. Ale gdyby tak już nie zastanawiając się jakie znaki tak na prawdę musimy ograniczyć zrobić:
? -------------------- Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 6 Dołączył: 3.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
@bmL ale tez trzeba pamietac o polskich literach (ż ć ś itd). A tez sa czasem w nickach spacje lub podkreslenia.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 301 Pomógł: 25 Dołączył: 15.07.2007 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
W sumie racja ale tak na prawdę: RAGEXP 'Wózek napędowy' == RAGEXP '(.*)W\ózek nap\ędowy(.*)' == RAGEXP '(.*)\W\ó\z\e\k \n\a\p\ę\d\o\w\y(.*)'. No i np. jak napisze sobie $search = '(.*)' to wyszukane będzie RAGEXP '(.*)\(\.\*\)(.*)\'.
Popraw mnie jeżeli się mylę, ale tak powinno być jakoś nie mam ochoty sprawdzać ![]() Ten post edytował bmL 24.10.2010, 11:58:53 -------------------- Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 6 Dołączył: 3.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ja slabo sie znam na regex wiec malo w tej kwestii moge sie wypowiedziec, dlatego zrobilem ten temat, jak to ugryzc. Najgorzej zaczac, a potem jakos leci.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
ale czy na pewno takie coś byłoby przydatne, no bo ilu użytkowników zna wyrażenia regularne? wydaje mi się, że lepiej stworzyć jakiś uproszczony system np.
#Darek zostanie zamienione na WHERE user_name LIKE %Darek #Darek# -> WHERE user_name LIKE %Darek% (Darek|Arek) -> WHERE user_name = 'Darek' OR user_name = 'Arek' itp. znając życie to nawet z takim czymś połowa użytkowników już by sobie nie radziła |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 6 Dołączył: 3.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Trzeba byc innowacyjny
![]() A zawsze czegos czlowiek nauczyc sie. Poradnik mozna userom napisac. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 04:32 |