Как настроить мерзавца для предотвращения случайного нажатия мерзавца

Я вижу, что это старый пост, но я нашел его полезным и подумал, что поделился бы решением, аналогичным тому, что предложил @kzqai:

У меня есть функция, которая получает два параметра, такие как ...

function getTableInfo($inTableName, $inColumnName) {
    ....
}

Внутри я проверяю массивы, которые я установил, чтобы убедиться, что доступны только таблицы и столбцы с «блаженными» таблицами:

$allowed_tables_array = array('tblTheTable');
$allowed_columns_array['tblTheTable'] = array('the_col_to_check');

Затем проверка PHP перед работающий PDO выглядит как ...

if(in_array($inTableName, $allowed_tables_array) && in_array($inColumnName,$allowed_columns_array[$inTableName]))
{
    $sql = "SELECT $inColumnName AS columnInfo
            FROM $inTableName";
    $stmt = $pdo->prepare($sql); 
    $stmt->execute();
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
34
задан Daniel Fanjul 9 February 2009 в 15:13
поделиться

5 ответов

Looks like

git config remote.origin.receivepack /bin/false

Makes push to remote origin fail.

35
ответ дан 27 November 2019 в 16:37
поделиться

Если Вы могли бы сделать все свое продвижение от другого ответвления, я думаю, что Вы могли бы настроить то ответвление, чтобы иметь его собственный отдельный репозиторий для продвижения к:

git checkout master
git branch outbound
git remote add destination <some url>
git config branch.outbound.remote destination

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

0
ответ дан skiphoppy 11 October 2019 в 06:39
поделиться

Я не уверен, что можно на самом деле сделать это в мерзавце сегодня. Реализация выборки мерзавца (во встроенном-fetch.c) и нажатия мерзавца (во встроенном-push.c) оба вызывают внутреннюю функцию remote_get (ПУСТОЙ УКАЗАТЕЛЬ) для идентификации репозитория по умолчанию к pull-from/push-to.

Одна опция состояла бы в том, чтобы создать псевдоним, который определяет Ваш желаемый repo. Например:

git config --add alias.mypush "push repo-for-push"

Тогда Вы могли:

git mypush

для продвижения к желаемому repo. Не точно, что Вы хотите, конечно. (Можно также рассмотреть - repo аргумент нажатию; см. http://kerneltrap.org/mailarchive/git/2008/10/7/3537694 для недавнего обновления документа, которое разъясняется - repo аргумент.)

7
ответ дан Emil Sit 11 October 2019 в 06:39
поделиться

Оберните команду "git" во что-то, что поглощает аргумент push. Я мысленно написал следующее:

~$ cat /usr/local/bin/git
#!/bin/bash

# git wrapper
# prevents pushing to repository

declare -a args
declare msg=''
while [ $# -gt 0 ]
do
    if [ "$1" != 'push' ]; then
        args=( "${args[@]}" "$1" )
    else
        msg="No pushing"
    fi
   shift
done

if [ ${#msg} -gt 0 ]; then
    echo "$msg"
fi
/usr/bin/git "${args[@]}"  

Просто убедитесь, что на вашем пути есть завернутая команда перед «настоящей» командой git.

0
ответ дан 27 November 2019 в 16:37
поделиться

В версии 1.6.4 , Git получил возможность удаленного извлечения с одного URL-адреса и отправки на другой, используя настройку конфигурации remote.name.pushurl . Я могу представить себе странное поведение, если push-репозиторий не отслеживает пул-репозиторий, но я подозреваю, что Git просто попытается перемотать push-репозиторий из текущей / отслеживающей / соответствующей ветки (ветвей), независимо от того, что это будет тянуть, когда он запрашивает удаленный пульт с тем же именем.

Например, если вы хотите использовать анонимный протокол git, но нажимать через SSH (возможно, вам нужно значение токена SecurID или что-то еще для аутентификации):

[remote "myremote"]
    url = git://server/path
    pushurl = user@server:/path
27
ответ дан 27 November 2019 в 16:37
поделиться
Другие вопросы по тегам:

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