Распакуйте файлы OpenOffice для лучшего устройства хранения данных в управлении версиями

На всякий случай, если кто-то не использует CMake, есть способ сделать это в Makefile. Если у вас есть файл Makefile.config, сгенерированный в вашей директории сборки, найдите prefix. Это prefix является установкой path, где будут установлены двоичные файлы / заголовки и т. Д. Изменение этого установит двоичные файлы / заголовки в измененный path.

16
задан Craig McQueen 10 June 2009 в 23:55
поделиться

4 ответа

Здесь есть кое-что еще.

Ajax не требует строго файлов cookie, но они могут быть полезны, как упоминалось в других плакатах. Пометка cookie только для того, чтобы скрыть его от сценариев, работает только частично, потому что не все браузеры поддерживают его, но также потому, что существуют общие обходные пути.

Странно, что заголовки XMLHTTPresponse предоставляют cookie, технически сервер не должен вернуть cookie с ответом. Как только он установлен на клиенте, он остается установленным до истечения срока его действия. Хотя существуют схемы, в которых cookie изменяется при каждом запросе, чтобы предотвратить повторное использование. Таким образом, вы можете избежать этого обходного пути, изменив сервер так, чтобы он не предоставлял cookie для ответов XMLHTTP.

В целом, я думаю, что HTTPOnly следует использовать с некоторой осторожностью. Существуют атаки с использованием межсайтовых сценариев, когда злоумышленник организует для пользователя отправку ajax-подобного запроса, исходящего с другого сайта, с использованием простых почтовых форм, без использования XMLHTTP, и все еще активный файл cookie вашего браузера будет аутентифицировать запрос.

Если вы хотите быть уверены, что запрос AJAX аутентифицирован, сам запрос И заголовки HTTP должны содержать cookie. Например, с помощью скриптов или уникальных скрытых входов. HTTPOnly воспрепятствует этому.

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

используя простые почтовые формы, без использования XMLHTTP, и все еще активный cookie вашего браузера будет аутентифицировать запрос.

Если вы хотите быть уверены, что запрос AJAX аутентифицирован, сам запрос И заголовки HTTP должны содержать куки. Например, с помощью скриптов или уникальных скрытых входов. HTTPOnly воспрепятствует этому.

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

используя простые почтовые формы, без использования XMLHTTP, и все еще активный cookie вашего браузера будет аутентифицировать запрос.

Если вы хотите быть уверены, что запрос AJAX аутентифицирован, сам запрос И заголовки HTTP должны содержать куки. Например, с помощью скриптов или уникальных скрытых входов. HTTPOnly воспрепятствует этому.

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

сам запрос И заголовки HTTP должны содержать cookie. Например, с помощью скриптов или уникальных скрытых входов. HTTPOnly воспрепятствует этому.

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

сам запрос И заголовки HTTP должны содержать cookie. Например, с помощью скриптов или уникальных скрытых входов. HTTPOnly воспрепятствует этому.

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

Надежда, которая помогает

14
ответ дан 30 November 2019 в 21:29
поделиться

Вот сценарий Python, который я собрал. Пока что прошло минимальное тестирование. Я провел базовое тестирование в Python 2.6. Но я предпочитаю идею Python в целом, потому что он должен прерываться с исключением, если возникает какая-либо ошибка, тогда как сценарий bash может этого не делать.

Это сначала проверяет, что входной файл действителен и не является ли еще несжатым. Затем он копирует входной файл в файл «резервной копии» с расширением «.bak». Затем он распаковывает исходный файл, перезаписывая его.

Я уверен, что есть вещи, которые я упустил. Не стесняйтесь оставлять отзывы.


#!/usr/bin/python
# Note, written for Python 2.6

import sys
import shutil
import zipfile

# Get a single command-line argument containing filename
commandlineFileName = sys.argv[1]

backupFileName = commandlineFileName + ".bak"
inFileName = backupFileName
outFileName = commandlineFileName
checkFilename = commandlineFileName

# Check input file
# First, check it is valid (not corrupted)
checkZipFile = zipfile.ZipFile(checkFilename)
checkZipFile.testzip()

# Second, check that it's not already uncompressed
isCompressed = False
for fileObject in checkZipFile.infolist():
    if fileObject.compress_type != zipfile.ZIP_STORED:
        isCompressed = True
if isCompressed == False:
    raise Exception("File is already uncompressed")

checkZipFile.close()

# Copy to "backup" file and use that as the input
shutil.copy(commandlineFileName, backupFileName)
inputZipFile = zipfile.ZipFile(inFileName)

outputZipFile = zipfile.ZipFile(outFileName, "w", zipfile.ZIP_STORED)

# Copy each input file's data to output, making sure it's uncompressed
for fileObject in inputZipFile.infolist():
    fileData = inputZipFile.read(fileObject)
    outFileObject = fileObject
    outFileObject.compress_type = zipfile.ZIP_STORED
    outputZipFile.writestr(outFileObject, fileData)

outputZipFile.close()

Он находится в репозитории Mercurial в BitBucket .

1
ответ дан 30 November 2019 в 21:29
поделиться

Я немного изменил программу python в ответе Крейга Маккуина . Изменения включают:

  • Фактическая проверка возврата testZip (согласно документации, похоже, что исходная программа успешно продолжит работу с поврежденным zip-файлом после шага checkzip).

  • Перепишите цикл for, чтобы проверять, есть ли уже несжатые файлы, как один оператор if.

Вот новая программа:

#!/usr/bin/python
# Note, written for Python 2.6

import sys
import shutil
import zipfile

# Get a single command-line argument containing filename
commandlineFileName = sys.argv[1]

backupFileName = commandlineFileName + ".bak"
inFileName = backupFileName
outFileName = commandlineFileName
checkFilename = commandlineFileName

# Check input file
# First, check it is valid (not corrupted)
checkZipFile = zipfile.ZipFile(checkFilename)

if checkZipFile.testzip() is not None:
    raise Exception("Zip file is corrupted")

# Second, check that it's not already uncompressed
if all(f.compress_type==zipfile.ZIP_STORED for f in checkZipFile.infolist()):
    raise Exception("File is already uncompressed")

checkZipFile.close()

# Copy to "backup" file and use that as the input
shutil.copy(commandlineFileName, backupFileName)
inputZipFile = zipfile.ZipFile(inFileName)

outputZipFile = zipfile.ZipFile(outFileName, "w", zipfile.ZIP_STORED)

# Copy each input file's data to output, making sure it's uncompressed
for fileObject in inputZipFile.infolist():
    fileData = inputZipFile.read(fileObject)
    outFileObject = fileObject
    outFileObject.compress_type = zipfile.ZIP_STORED
    outputZipFile.writestr(outFileObject, fileData)

outputZipFile.close()
3
ответ дан 30 November 2019 в 21:29
поделиться

Вот еще одна программа, на которую я наткнулся: store_zippies_uncompressed от Мирко Фриденхагена.

Вики также показывает, как интегрировать его с Mercurial.

2
ответ дан 30 November 2019 в 21:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: