UWAGA: W PHP wykryto krytyczne podatności, przez które Wasze strony/fora mogą zostać zhakowane! Dzisiaj mają być udostępnione poprawione wersje, warto monitorować i ustawić odpowiendie wersje PHP na swom serwerze.

Poprawki będę zawarte w wersjach PHP: 8.5.12, 8.4.27, 8.3.36 oraz 8.2.35! Jeśli używacie jeszcze wersje PHP 7.x lub 8.0.x lub 8.1.x, należy, jak najszybciej podnieść wersje PHP i/lub zaktualizować swoje fora!

Do momentu wdrożenia oficjalnej łatki, ryzyko ataku można drastycznie zmniejszyć poprzez zmianę konfiguracji w pliku php.ini:
Ustaw: session.upload_progress.enabled = Off

Albo np., można zrobić: https://ma.ttias.be/php-cve-2026-109618 ... itigation/

Dla serwera Apache ustaw w pliku .htaccess

Kod: Zaznacz cały

RewriteEngine On
RewriteCond %{HTTP:Content-Type} multipart/form-data [NC]
RewriteRule ^ - [F]
i/lub - nie testowałem

Kod: Zaznacz cały

<If "req('Content-Type') =~ /multipart/i">
    Require all denied
</If>

Dla nginx

Kod: Zaznacz cały

# http {} context, e.g. /etc/nginx/conf.d/block-multipart.conf
map $http_content_type $block_multipart {
    default       0;
    "~*multipart" 1;
}

# inside every server {} that passes requests to PHP, including default/catch-all servers
if ($block_multipart) {
    return 403;
}
_____________________________________________________

Pojawiła się nowa wersja systemu - phpBB 3.3.19. Ostatnie wydania (od wersji 3.3.17 do najnowszej) przynoszą kluczowe poprawki, które chronią Twoje forum przed zagrożeniami i dbają o spokój Twojej społeczności. Polecam nie odkładać tego na później, tyllko zaktualizować fora!

Polski pakiet językowy dla phpBB 3.3.19

Licznik z MySQL odporny na odświeżanie

Rozmowy z innymi użytkownikami forum na różne tematy, niekoniecznie związane ze skryptem phpBB.
jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Licznik z MySQL odporny na odświeżanie

Post autor: jaroslw » 17 lutego 2007, 18:41

Witam, pisałem kiedyś o problemie z licznikiem odpornym na odświeżanie działającym na plikach .txt. Teraz problem jest podobny ale trochę inny, a mianowicie mam kod PHP + MySQL dla licznika ale nie jest on odporny na odświeżanie. Proszę o pomoc osoby bardziej znające się na PHP. Skrycik wygląda tak:

Kod: Zaznacz cały

<?php
			$serwer = 'hodt'; // Twój serwer MySQL
			$login = 'login'; // Twój login do bazy danych
			$haslo = 'hasło'; // Twoje hasło do bazy
			$baza = 'baza'; // Nazwa twojej bazy danych

			$polaczenie = mysql_connect($serwer, $login, $haslo)
			   or die(mysql_error()); // Połączenie z bazą danych MySQL

			mysql_select_db($baza, $polaczenie)
			  or die(mysql_error()); // Wybór bazy danych

			$rezultat = mysql_query("SELECT * FROM licznik_odwiedzin")
			   or die(mysql_error()); // Pobranie danych
			$pd = mysql_fetch_array($rezultat);

			$lo = $pd["ilosc_odwiedzin"]; // Zapis danych do zmiennej $lo

			$lo = $lo + 1; // Inkrementacja zmiennej $lo

			echo 'Ilo¶ć odwiedzin: <b>' . $lo . '</b><br />'; // Wyświetlenie stanu licznika

			$sql = "DELETE FROM licznik_odwiedzin";
			$sql1 = "INSERT IGNORE INTO licznik_odwiedzin (ilosc_odwiedzin) " .
			        "VALUES (" . $lo . ")";

			$rezultat = mysql_query($sql)
			    or die(mysql_error()); // Zapisanie stanu licznika w bazie danych

			$rezultat = mysql_query($sql1)
			    or die(mysql_error());
			?>
Zapytanie SQL:

Kod: Zaznacz cały

CREATE TABLE licznik_odwiedzin (
    ilosc_odwiedzin int(10) NOT NULL auto_increment,
    PRIMARY KEY (ilosc_odwiedzin)
);
Pobierz styl: we_universal • we_clearblue
Nowości i aktualizacje: Facebook • Google+ • Twitter

Awatar użytkownika
daroPL
Administrator
Posty: 4564
Rejestracja: 24 czerwca 2005, 13:36
Lokalizacja: Poznań
Kontakt:

Post autor: daroPL » 18 lutego 2007, 13:34

[php]<?
$serwer = 'hodt'; // Twój serwer MySQL
$login = 'login'; // Twój login do bazy danych
$haslo = 'hasło'; // Twoje hasło do bazy
$baza = 'baza'; // Nazwa twojej bazy danych

$polaczenie = mysql_connect($serwer, $login, $haslo)
or die(mysql_error()); // Połączenie z bazą danych MySQL

mysql_select_db($baza, $polaczenie)
or die(mysql_error()); // Wybór bazy danych

$rezultat = mysql_query("SELECT * FROM licznik_odwiedzin")
or die(mysql_error()); // Pobranie danych
$pd = mysql_fetch_array($rezultat);

$lo = $pd['ilosc_odwiedzin']; // Zapis danych do zmiennej $lo

$lo++;

echo 'Ilo¶ć odwiedzin: <b>' . $lo . '</b><br />'; // Wyświetlenie stanu licznika

if(!$_COOKIE['licznik'])
{
setcookie('licznik', 1, time()+3600);
$sql1 = "UPDATE licznik_odwiedzin SET ilosc_odwiedzin = " . $lo . " LIMIT 1";

$rezultat = mysql_query($sql1)
or die(mysql_error());
}
?>[/php]

Kod: Zaznacz cały

CREATE TABLE licznik_odwiedzin (
    ilosc_odwiedzin int(10) NOT NULL,
    PRIMARY KEY (ilosc_odwiedzin)
);
robione na szybko ale powinno ruszyć :)
Ostatnio zmieniony 09 sierpnia 2007, 13:05 przez daroPL, łącznie zmieniany 1 raz.

jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Post autor: jaroslw » 18 lutego 2007, 13:54

Dzięki, wprawdzie otrzymałem już chwilę wcześniej pomoc na innym forum ale i tak plusik dla Ciebie :)
Pobierz styl: we_universal • we_clearblue
Nowości i aktualizacje: Facebook • Google+ • Twitter

ODPOWIEDZ

Wróć do „Ogólne dyskusje”