• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Аттачи в Web

Kizarek86

Green Team
20.07.2007
871
7
BIT
38
Прошу поделиться опытом и наработками в отображении аттачей в вебе.
Кто как делает? Чтобы было красиво и удобно (Просматривать/удалять/добавлять)

Заранее спасибо
 

NetWood

Lotus Team
17.04.2008
545
93
BIT
8
XPAGE - это для лентяев :)
Так простенько совсем...
 

Вложения

  • wattach2.zip
    558,1 КБ · Просмотры: 117

Kizarek86

Green Team
20.07.2007
871
7
BIT
38
Хороший пример, Спасибо.

Теперь ещё одна проблема с аттачем.
Нужно ограничить размер загружаемого файла. Серверное ограничение хорошо, но при сохранении файла превышающего серверные настройки вылезает страница с ошибкой. Нужно либо отловить эту ошибку и выдавать только сообщение яваскриптовое, или ограничивать как то по другому.

Прошу помочь кто решал такую задачу
 

NetWood

Lotus Team
17.04.2008
545
93
BIT
8
Сделайте поле на форме скрытое. Назовите скажем AttachmentMaxSize. В нем проверку введенных данных
=====
REM {uploaded file size};
wdbn:=@WebDbName;
CR:=@Char(13)+@Char(10);
libversion:=@GetProfileField("Configuration_Profile";"cssjsversion");
gzip:=@If(@Middle(HTTP_Cookie;"onimod_gzip=";";")="1";@True;@False);
filesystem:=@If(@Middle(HTTP_Cookie;DBID+"_filesystem=";";")="1";@True;@False);
commonlibpath:=@If(filesystem;@If(gzip;"/domBulletin/gzip/common.js?Open";"/domBulletin/common.js?Open");@If(gzip;"/"+wdbn+"/gzipcommon.js?OpenFileResource";"/"+wdbn+"/common.js?OpenJavascriptLibrary"))+
"&ExpandSection="+libversion;

FileSize:=@If(@Attachments>0 ; @Sum(@AttachmentLengths)/1000; 0);
FileSizeMax:=@GetProfileField("Configuration_Profile" ; "AttachmentMaxSize");
FileSizeMax:=@If(FileSizeMax="" ; 0 ; FileSizeMax);
Error := @If ( FileSizeMax=0 | FileSize=0 ; "" ; FileSize > FileSizeMax ; "text_uploadattachementmaxsizereached" ; "");

@If(Error != "" ;
@Failure("Expires: Tue, 01 Jan 1980 06:00:00 GMT"+CR+"Pragma: no-cache"+CR+"Content-Type: text/html"+CR+
"<html><head>"+CR+
"<script src=\"/"+wdbn+"/JsDbCommonVariables?ReadForm\"></script>"+CR+
"<script src=\""+commonlibpath+"\"></script>"+CR+
"<script>_doSkin();</script>"+CR+
"<title>"+@DbTitle+"</title></head>"+CR+
"<body bgcolor=ffffff topmargin=0 leftmargin=0 marginheight=0 marginwidth=0 class=\"documentbackground\"><div align=center>"+CR+
"<IMG SRC=\"/icons/ecblank.gif\" width=1 height=4><TABLE WIDTH=98% CELLPADDING=2 CELLSPACING=10 CLASS=\"doctablebackground\"><TR HEIGHT=120><TD VALIGN=TOP ALIGN=CENTER CLASS=\"doccontent\"><BR>"+CR+
"<script>document.write("+Error+")</SCRIPT><BR><BR>"+CR+
"</TD></TR></TABLE></div></body></html>");
@Success)

Если размер аттачей превышен, откроется страничка с сообщением и не даст сохранить. Сообщение пишите ручками вместо <script>document.write("+Error+")</SCRIPT> или подключите перменную Error
Примерно так. Внутри формулы порежьте лишнее, типа _doSkin(); <script>document.write("+Error+")</SCRIPT> Это выдрано из рабочей базы.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!