Используйте платформу как JQuery, чтобы сделать вещи как:
function toggleStatus() {
if ($('#toggleElement').is(':checked')) {
$('#idOfTheDIV :input').attr('disabled', true);
} else {
$('#idOfTheDIV :input').removeAttr('disabled');
}
}
Отключают И Включают Входные Элементы В Блоке Отделения Используя jQuery, должен помочь Вам!
С jQuery 1.6, необходимо использовать .prop
вместо .attr
для отключения.
Судя по вашему описанию, кодирование JSON является безопасным и быстрым решением. В python2.6 есть модуль json, вы можете использовать его следующим образом:
import json
obj = {'key1': 'value1', 'key2': [1, 2, 3, 4], 'key3': 1322}
encoded = json.dumps(obj)
obj = json.loads(encoded)
Формат JSON читается человеком и очень похож на представление строки словаря в python. И не имеет таких проблем с безопасностью, как рассол. Если у вас нет python2.6, вы можете установить cjson или simplejson
. Вы не можете использовать JSON для сохранения объектов python, таких как Pickle. Но вы можете использовать его для сохранения: строк, словарей, списков ... В большинстве случаев этого может быть достаточно.
Чтобы объяснить, почему pickle небезопасен. Из python docs :
Большинство проблем с безопасностью окружающий рассол и cPickle модуль включает распаковку. Есть нет известных уязвимостей безопасности связанных с маринованием, потому что вы ( программист) управляют объектами, которые рассол будет взаимодействовать, и все это производит - это строка.
Однако для распаковки это никогда хорошая идея, чтобы разобрать ненадежный строка, происхождение которой сомнительно, ибо Например, строки читаются из сокета. Это потому, что распаковка может создать неожиданные предметы и даже потенциально запускать методы тех объекты, такие как их класс конструктор или деструктор ... Мораль этой истории в том, что вы следует быть очень осторожным с источник строк вашего приложения unpickles.
Есть несколько способов защитить себя, но в вашем случае гораздо проще использовать JSON.
Вы можете сделать что-то вроде:
для записи
, чтобы прочитать
Интересно, почему вы думаете, что файлы данных будут изменены, а ваше приложение - нет?
Вам следует использовать какую-то базу данных. Хранить в формате рассола - не лучшая идея (в большинстве случаев). Вы можете рассмотреть:
Вы можете найти другие решения здесь .
Вам необходимо предоставить нам больше контекста, прежде чем мы сможем ответить: какой тип данных вы экономите, сколько там, как вы хотите получить к нему доступ?
Что касается солений: они не хранят код. Когда вы выбираете функцию или класс, сохраняется имя, а не сам код.
***** В этом ответе меня беспокоит только случайное повреждение целостности приложения. *****
Pickle "безопасен" ". Что может быть небезопасным, так это доступ к коду, который вы не писали, например, в плагинах; это не имеет отношения к соленым огурцам.
Когда вы обрабатываете объект, все его данные сохраняются, а код и реализация - нет. Это означает, что при извлечении обновленный объект может обнаружить, что внутри него есть данные «старого стиля» (если вы обновите реализацию). Это то, что вы должны знать и обрабатывать, если применимо.
Обработка строк, списков, чисел, dicts очень проста и работает отлично, по сравнению с JSON. Магия Pickle в том, что - иногда без настройки - можно мариновать даже сложные объекты Python. Но маринованы только данные;
Кто - конкретно - социопат, который пытается взломать программу, взломав маринованный файл?
Это Python. У социопата есть ваш источник. Им не нужно дурачиться, взламывая ваш файл рассола. Они могут просто отредактировать ваш источник и нанести любой «ущерб», какой захотят.
Не беспокойтесь о «небезопасности», если только вы не участвуете в судебных процессах с организованными преступными синдикатами.
Не беспокойтесь о «мошенниках». save файл может ввести вредоносный код в программу ". Никто не будет беспокоиться о мошеннических файлах сохранения, когда у них есть исходный код.
Вы можете использовать это:
addedDate = datetime.now ().
http://yserial.sourceforge.net
which reads like a tutorial but operationally offers working code for serialization and persistance. The commentary discusses some of the pros and cons relevant to issues raised here.
It's designed to be a general solution to warehousing compressed Python objects with SQLite (with almost no SQL fuss ;-)
Hope this helps.