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

komentator na plikach

Forum poświęcone skryptom, językom programowania, serwerom i hostingowi, domenom itp.
Darom
Posty: 92
Rejestracja: 25 sierpnia 2008, 07:07

komentator na plikach

Post autor: Darom » 17 stycznia 2011, 19:46

W jaki sposob na mojej stronce: http://www.history.is.net.pl/?download&cat=0 zrobić mozliwośc komentowania pobieranych plików ?
Tak jak jest to tutaj zrobione: http://www.phpbbhelp.pl/archiwum/download.php?d=585
Pisze pogrubionym czarnym komentarze (ilość komentarzy) i jest tam widoczna taka belka, ze kazdy komentarz w innej tabelce.
Jak takie cos zrobic u mnie na stronce ? Fajnie by było na pliku txt.

Jesli chodzi o te komentarze w tabelce to udalo mi sie przygotowac tylko cos takiego:

Kod: Zaznacz cały

<fieldset style="border:1px solid #DADADA; border-bottom:none; padding:0; margin:0;"> 
<legend> <font color="#0033cc"> <b>Komentarze</b> </font></legend> 
<strong>   {author}</strong> ({date}) <b>napisał(a)</b> 
<p style="padding:2px; background-color:#ECEEEE">{comment}</p> 
</fieldset>
I teraz reszte kodu niewiem jak napisac. Ale chcialbym miec to zrobione na pliku txt.
Moglbym to zrobic tak, ze w pliku add.php (plik dodaj.php juz mam na serwerze) zrobilbym tak:

Kod: Zaznacz cały

<script>

function walidacja(thi)
{
   var blad = false;
   var wzor = /\s/g;

   if(thi.nick.value.replace(wzor, "").length == 0)
      blad = true;
   if(thi.pole.value.replace(wzor, "").length == 0)
      blad = true;      
        
   if(blad)
      document.getElementById('blad').innerHTML = "&nbsp; &nbsp;» Prosze wypełnić wszystkie pola !"
   else
      thi.submit();    
}

</script>

<div class="news">
   <form method="post" class="formularz" action="send.php?id=<? echo $_GET['id']; ?>" onsubmit="walidacja(this);return false;"><br />
      <p>
         &nbsp; &nbsp;Komentarz<br>
         &nbsp; &nbsp;<textarea name="pole" cols="42" rows="6" style="background-color:#FFCCFF;"></textarea>
      </p>
      <p>
         &nbsp; &nbsp;Podpis<br>
         &nbsp; &nbsp;<input type="text" name="nick" size="54" style="background-color:#FFCCFF;">
      </p>
      <div style="text-align:left;padding:4px;">
         <input type="hidden" name="action" value="1">
         &nbsp; <input type="submit" value="Send">
      </div>
   </form>
   <div id="blad" style="color:#ff0000;font-weight:bold;"></div>
</div>


<?php

if(isset($_POST['action']) && $_POST['action']==1)
echo <<< SER
      Nick: {$_POST['nick']}<br>
      Komentarz: {$_POST['pole']}
SER;

?>
W pliku send.php (plik wyslij.php juz mam na serwerze) zrobilbym tak:

Kod: Zaznacz cały

<?php 
if ($_GET['wyslano']!=1) {
if(empty($_POST['nick']) || empty($_POST['mail']) || empty($_POST['www']) || empty($_POST['temat']) || empty($_POST['pole'])) { 
header('Location:  http://www.history.is.net.pl/?news&id='.$_GET['id'].'&wyslano=1');
} 
$nick = $_POST['nick']; 
$mail = $_POST['mail']; 
$www = $_POST['www']; 
$temat = $_POST['temat']; 
$pole = $_POST['pole']; 
$nick  = HTMLSpecialChars($nick); 
$mail  = HTMLSpecialChars($mail); 
$www  = HTMLSpecialChars($www); 
$temat  = HTMLSpecialChars($temat); 
$pole  = HTMLSpecialChars($pole); 
$datanow = date("d.m.Y H:i");
$wynik = $datanow . '|||' . $nick .'|||'. $mail . '|||' . $www . '|||' . $temat . '|||' . $pole . "\n"; 
$plik = 'comments/'.$_GET['id'].'.txt'; 
$fp = fopen($plik, "a"); 
fwrite ($fp, $wynik); 
fclose($fp);
} 
?>
W pliku show.php (plik pokaz.php juz mam na serwerze) zrobilbym tak:

Kod: Zaznacz cały

<?php
if (!file_exists('comments/'.$_GET['id'].'.txt'))
{
    file_put_contents('comments/'.$_GET['id'].'.txt', '');
    chmod('comments/'.$_GET['id'].'.txt', 0777);
}
    
$file = file('comments/'.$_GET['id'].'.txt'); rsort($file); $file = file('comments/'.$_GET['id'].'.txt'); $file = array_reverse($file);
foreach($file as $key => $value)
{
   $data = explode('|||', $value);

   echo '<span style="color: #222222"><b>'. $data[0] . ' | </b></span><span style="color: #E74100"><b>' . $data[1] .'</b></span><br />';
   $tresc = $data[5];
   echo ''. $tresc .'<br>';
}
?>
W pliku download.php dac to:

Kod: Zaznacz cały

<?php
$comments=0;
$file = file('comments/'.$_GET['id'].'.txt'); rsort($file); $file = file('comments/'.$_GET['id'].'.txt'); $file = array_reverse($file);
foreach($file as $key => $value)
{
$comments++;
}
?>
<fieldset style="border:1px solid #DADADA; border-bottom:none; padding:0; margin:0;"> 
<legend> <font color="#0033cc"> <b>Komentarze (<?=$comments?>)</b> </font></legend> 
<strong>   {author}</strong> ({date}) <b>napisał(a)</b> 
<p style="padding:2px; background-color:#ECEEEE">{comment}</p> 
</fieldset>
<div style="display:none;" id="show1"><?
include("show.php");
?></div>
<div style="display:none;" id="add1"><?
if($_GET['wyslano']==1) echo '<p style="text-align: center"><span style="color:#ff0000;">» Ten program już był komentowany !</span></p>'; else include("add.php");
?></div>
Czy dobrze to robie ? Pliki w nawiasach z polska nazwa mam juz na serwerze do innego komentowania na mojej stronce.
Czy jesli jest cos nie tak to moglby mi ktos poprawic te kody na takie, zeby bylo tak jak chce miec w dziale download ? Bardzo prosze Was o pomoc w tej sprawie.

ODPOWIEDZ

Wróć do „Webmastering”