[過去ログ]
Ruby 初心者スレッド Part 66 (1002レス)
Ruby 初心者スレッド Part 66 http://mevius.5ch.net/test/read.cgi/tech/1578068134/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
663: デフォルトの名無しさん (ワッチョイ 7133-UdbQ) [sage] 2020/08/14(金) 17:05:39.60 ID:B0hSR/wp0 文字コードが違うんやろ。 変換すれば。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/663
664: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 17:27:30.31 ID:MuRP3aMr0 変換のしかたがわからないのです http://mevius.5ch.net/test/read.cgi/tech/1578068134/664
665: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 17:28:37.41 ID:MuRP3aMr0 dllはshiftjisです http://mevius.5ch.net/test/read.cgi/tech/1578068134/665
666: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 17:30:52.13 ID:MuRP3aMr0 `require': cannot load such file -- ffi http://mevius.5ch.net/test/read.cgi/tech/1578068134/666
667: デフォルトの名無しさん (ワッチョイ 1e7d-yoZq) [sage] 2020/08/14(金) 17:44:20.45 ID:cCFmHkiX0 >>662 ss = M.gethoge.force_encoding( Encoding::CP932 ) http://mevius.5ch.net/test/read.cgi/tech/1578068134/667
668: デフォルトの名無しさん (エムゾネ FF62-jwrZ) [] 2020/08/14(金) 18:18:09.19 ID:zY2s9ydfF ruby -Ks http://mevius.5ch.net/test/read.cgi/tech/1578068134/668
669: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 18:24:57.25 ID:MuRP3aMr0 一通りやったのに問題解決しませんでした、諦めました どうもありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1578068134/669
670: デフォルトの名無しさん (オッペケ Srf1-wvIG) [sage] 2020/08/14(金) 18:35:40.73 ID:5nafUaAcr dllがShift-JISでrubyがUTF-8でターミナルがWindows-32Jとかなんじゃねえの 情報を小出しにされたんじゃわかるわけない http://mevius.5ch.net/test/read.cgi/tech/1578068134/670
671: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 18:40:48.13 ID:MuRP3aMr0 それです ターミナルがよくわかりません http://mevius.5ch.net/test/read.cgi/tech/1578068134/671
672: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 18:42:22.56 ID:MuRP3aMr0 ターミナルはshiftjisでした http://mevius.5ch.net/test/read.cgi/tech/1578068134/672
673: デフォルトの名無しさん (オッペケ Srf1-wvIG) [sage] 2020/08/14(金) 18:58:09.61 ID:5nafUaAcr そもそも本当に文字化けなのか? 想定する文字列と p ss した結果は? http://mevius.5ch.net/test/read.cgi/tech/1578068134/673
674: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 19:03:22.47 ID:MuRP3aMr0 #<Fiddle::Pointer:0x000000000313e7d0 ptr=0x00007ffea5c03038 size=0 free=0x0000000000000000> http://mevius.5ch.net/test/read.cgi/tech/1578068134/674
675: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 19:04:10.92 ID:MuRP3aMr0 require 'fiddle/import' module M extend Fiddle::Importer dlload "D:./myruby.dll" extern "char* gethoge()" end p M.gethoge system "pause" http://mevius.5ch.net/test/read.cgi/tech/1578068134/675
676: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 19:06:41.96 ID:MuRP3aMr0 想定する文字列は「こんにちは!」です http://mevius.5ch.net/test/read.cgi/tech/1578068134/676
677: デフォルトの名無しさん (ワッチョイ 1e7d-yoZq) [sage] 2020/08/14(金) 19:07:56.76 ID:cCFmHkiX0 p M.gethoge.encoding http://mevius.5ch.net/test/read.cgi/tech/1578068134/677
678: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 19:08:46.36 ID:MuRP3aMr0 puts M.gethoge だと S0�0k0a0o0� http://mevius.5ch.net/test/read.cgi/tech/1578068134/678
679: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 19:10:43.30 ID:MuRP3aMr0 >>677 undefined method `encoding' for #<Fiddle::Pointer:0x0000000002c42230> (NoMethodError) http://mevius.5ch.net/test/read.cgi/tech/1578068134/679
680: デフォルトの名無しさん (ワッチョイ 1e7d-yoZq) [sage] 2020/08/14(金) 19:16:58.97 ID:cCFmHkiX0 p M.gethoge.to_s.encoding http://mevius.5ch.net/test/read.cgi/tech/1578068134/680
681: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 19:19:22.81 ID:MuRP3aMr0 >>680 #<Encoding:ASCII-8BIT> http://mevius.5ch.net/test/read.cgi/tech/1578068134/681
682: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 19:21:07.40 ID:MuRP3aMr0 #include <stdio.h> char name[] = "こんにちは!"; extern "C" __declspec(dllexport) char* __stdcall gethoge() { return name; } dll側です http://mevius.5ch.net/test/read.cgi/tech/1578068134/682
683: デフォルトの名無しさん (ワッチョイ 1e7d-yoZq) [sage] 2020/08/14(金) 19:28:01.98 ID:cCFmHkiX0 puts M.gethoge.to_s.force_encoding( Encoding::CP932 ) http://mevius.5ch.net/test/read.cgi/tech/1578068134/683
684: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 19:29:32.82 ID:MuRP3aMr0 >>683 お!出ました! ありがとうございました 助かりました http://mevius.5ch.net/test/read.cgi/tech/1578068134/684
685: デフォルトの名無しさん (オッペケ Srf1-wvIG) [sage] 2020/08/14(金) 19:38:38.19 ID:5nafUaAcr hoge.dllコンパイルしてたら解決してた 良かったね http://mevius.5ch.net/test/read.cgi/tech/1578068134/685
686: デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [] 2020/08/14(金) 19:58:30.98 ID:MuRP3aMr0 >>685 ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1578068134/686
687: デフォルトの名無しさん (ワッチョイ e52c-178q) [sage] 2020/08/14(金) 22:28:15.31 ID:SCMnTycc0 Windows で、Ruby を使うのは、CP932 で苦しむ。 ちょっとした処理でも、外部・CP932 → Ruby内部・UTF-8 → 外部・CP932 クリップボード内の複数行文字列の、各行の先頭・末尾から、 連続する空白類を除去して、クリップボードに入れる str = `powershell Get-Clipboard` str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換 ary = str.each_line.map( &:strip ) # 連続する空白類を除去する IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す clip.print( ary.join "\n" ) end http://mevius.5ch.net/test/read.cgi/tech/1578068134/687
688: デフォルトの名無しさん (ワッチョイ 8201-FRDO) [sage] 2020/08/14(金) 23:58:52.64 ID:sxmwfi0L0 >>687 スクリプト/内部/外部のエンコーディングをCP932にすれば CP932 -> UTF8とUTF8 -> CP932の変換や指定は不要 http://mevius.5ch.net/test/read.cgi/tech/1578068134/688
689: デフォルトの名無しさん (ワッチョイ 9d6a-2ych) [] 2020/08/18(火) 19:07:20.91 ID:7fbjefcm0 mechanizeのform送信を使って5chに書きこむことはできますか? textareaにvalue値を入れ、submitし、承諾しますか?の画面まで行けたのですが、そこから同じようにsubmitしてもページ遷移が起こらずそのままみたいです http://mevius.5ch.net/test/read.cgi/tech/1578068134/689
690: デフォルトの名無しさん (オッペケ Srf1-wvIG) [sage] 2020/08/18(火) 19:31:46.44 ID:AGh/qXAtr >>689 cookie http://mevius.5ch.net/test/read.cgi/tech/1578068134/690
691: デフォルトの名無しさん (ワッチョイ 9d6a-2ych) [] 2020/08/18(火) 19:53:02.69 ID:7fbjefcm0 >>690 具体的にcoockieをどうすれば良いでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1578068134/691
692: デフォルトの名無しさん (エムゾネ FF62-jwrZ) [] 2020/08/18(火) 20:08:47.36 ID:h5vNCvfYF hanamogera tepodon http://mevius.5ch.net/test/read.cgi/tech/1578068134/692
693: デフォルトの名無しさん (ワッチョイ 6285-UC6e) [sage] 2020/08/18(火) 21:43:20.22 ID:HR/M/dGq0 >>687 >Windows で、Ruby を使うのは、CP932 で苦しむ。 >ちょっとした処理でも、外部・CP932 → Ruby内部・UTF-8 → 外部・CP932 Rubyを生半可に知ったつもりの人にありがちな勘違いだな まず、多言語化に対応した多くのプログラミング言語は、 内部エンコーディングとしてUTF-8を採用している、ここまでは間違いではない しかしながらRubyは内部エンコーディングとして特定のエンコーディングを採用せず、 文字列(String)オブジェクトの属性としてエンコーディング情報を保持する 方式を採用した だから>>688氏が指摘しているように、エンコーディングをCP932で統一できるなら、 Rubyであれば 外部・CP932 → Ruby内部・CP932 → 外部・CP932 と エンコーディングフリーなプログラミンングを実践できる ・Ruby 2.7.0 リファレンスマニュアル > 多言語化 ttps://docs.ruby-lang.org/ja/latest/doc/spec=2fm17n.html ・Rubyのエンコーディング ttps://www.sl*d*share.net/tmtm/ruby-nseg30 ・Rubyのエンコーディング ttps://tmtms.h*t*n*blog.com/entry/20120812/ruby_encoding ありふれた言語、たとえばPythonであれば内部エンコーディンングはUTF-8固定だから: >Windows で、Python を使うのは、CP932 で苦しむ。 >ちょっとした処理でも、外部・CP932 → Python内部・UTF-8 → 外部・CP932 という指摘は正しい http://mevius.5ch.net/test/read.cgi/tech/1578068134/693
694: デフォルトの名無しさん (ワッチョイ 8201-FRDO) [sage] 2020/08/18(火) 22:19:28.71 ID:KlQrPk6/0 CSI方式を採用した背景はこれ読むといいよ https://jp.quora.com/Ruby-deha-naze-UCS-seiki-ka-wo-saiyou-shi-tei-nai-node-shou-ka/answers/141570426 ↓こう書いとけばリテラルもI/OのデフォルトもCP932 #! /usr/bin/env ruby -E CP932:CP932 # encoding: CP932 http://mevius.5ch.net/test/read.cgi/tech/1578068134/694
695: デフォルトの名無しさん (テテンテンテン MM4f-f6AD) [sage] 2020/08/19(水) 00:17:36.61 ID:45CsPPnjM エンコーディングのコストなんてIOに比べりゃ無視できる ぶっちゃけRubyのやり方は百害あって一利無し http://mevius.5ch.net/test/read.cgi/tech/1578068134/695
696: デフォルトの名無しさん (ワッチョイ 7fa5-u2+K) [sage] 2020/08/19(水) 00:28:27.54 ID:dM5o8vR90 windowsのファイルシステムのエンコーディングを中途半端なままにしたことで、 windowsユーザーへの嫌がらせになった以外に何の意味もなかった http://mevius.5ch.net/test/read.cgi/tech/1578068134/696
697: デフォルトの名無しさん (ワッチョイ 7f47-fHWV) [] 2020/08/19(水) 01:42:46.33 ID:Ch6IfZIA0 >>695 +1 ほんそれ http://mevius.5ch.net/test/read.cgi/tech/1578068134/697
698: デフォルトの名無しさん (ワッチョイ 9f33-KILr) [sage] 2020/08/19(水) 01:52:26.05 ID:zoQbwZV20 >>696 Windowsのファイルシステムでは、あらゆるエンコーディングがうまくいってない気がするな。w まあ、しょせんUTF-16だしな。 安全そうなところだけをつかったほうが安心。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/698
699: 687 (ワッチョイ 1f2c-7CyN) [sage] 2020/08/19(水) 02:07:17.75 ID:w/3evjlx0 UTF-8 以外は実績が無いから、文字列処理とか、怖くて使えないだろ。 誰も使っていないから 文字列を、正しく数値に変換できるのかとか IO の境界で、変換する方が安全だと思う http://mevius.5ch.net/test/read.cgi/tech/1578068134/699
700: デフォルトの名無しさん (ワッチョイ 1f2c-7CyN) [sage] 2020/08/19(水) 02:33:17.91 ID:w/3evjlx0 >>689 RubyでCookieの読み込みや保存を幸せにする(Mechanize&Selenium) https://rooter.jp/web-crawling/ruby-cookie/ 「ruby mechanize cookie」で検索すれば? 漏れは、selenium webdriver で、実際のブラウザを操作しているだけだから、 クッキーの事も、考えたことはない。 ブラウザが勝手にやる プログラミングでは、入力して、ボタンを押すだけだから、簡単。 下は、yahoo のログインの例 driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym" element = driver.find_element(:id => "username") element.send_key "ユーザー名" driver.find_element(:id => "btnNext").click element = driver.find_element(:id => "passwd") element.send_key "パスワード" driver.find_element(:id => "btnSubmit").click http://mevius.5ch.net/test/read.cgi/tech/1578068134/700
701: 700 (ワッチョイ 1f2c-1yu9) [sage] 2020/08/19(水) 07:23:42.56 ID:w/3evjlx0 selenium webdriver なら、これで、 この板のtest スレの、書き込み確認画面が出る。 ひょっとしたら、確認画面が出ないかも知れない require "selenium-webdriver" options = Selenium::WebDriver::Chrome::Options.new options.add_option( :detach, true ) # ブラウザを切り離す options.add_argument( '--start-maximized' ) # 画面最大 driver = Selenium::WebDriver.for :chrome, options: options driver.manage.timeouts.implicit_wait = 15 # default timeout # プログラム板のtest スレ driver.navigate.to "https://mevius.5ch.net/test/read.cgi/tech/1597362675/1" element = driver.find_element( :css => ".formbody textarea" ) element.send_key "あい" driver.find_element( :css => ".formbody input.submitbtn" ).click http://mevius.5ch.net/test/read.cgi/tech/1578068134/701
702: 700 (ワッチョイ 1f2c-1yu9) [sage] 2020/08/19(水) 09:15:13.90 ID:w/3evjlx0 >>701 の続きに、以下を書くと、確認画面に切り替わった後の処理も、できる 単に、input[type=submit] のボタンを待つと、 遷移前後の両方のページで、ヒットするので、 確認画面に切り替わったかどうか、判別できない 遷移後のページだけに存在する、要素を待てば、 それが出現するまで、wait できるかも sleep 7 # 確認画面が出る。https://mevius.5ch.net/test/bbs.cgi puts driver.current_url # 切り替わったかどうか、URL を表示する # ボタンのラベルを表示する puts driver.find_element( :css => "input[type=submit]" ).attribute( "value" ) http://mevius.5ch.net/test/read.cgi/tech/1578068134/702
703: デフォルトの名無しさん (ワッチョイ 1f6a-RTUg) [] 2020/08/19(水) 10:10:18.21 ID:jdryYSd80 >>700さんのリンク先参考に見よう見まねでとりあえずやってみたんですけど、いまいちcookie_jarとかよくわからない・・・ require 'mechanize' require 'yaml' agent = Mechanize.new agent.user_agent_alias = "Windows Mozilla" agent.get('https://mevius.5ch.net/test/read.cgi/tech/1578068134/l50') cookie_str = agent.cookies.map{|e| e.set_cookie_value}.join(", ") #puts cookie_str agent2 = Mechanize.new HTTP::Cookie.parse(cookie_str, "https://mevius.5ch.net/test/read.cgi/tech/1578068134/l50").each{ |cookie| agent2.cookie_jar << cookie } cookie_yml = agent.cookies.map{ |e| e.to_yaml }.join #puts cookie_yml agent2.cookie_jar << YAML.load(cookie_yml) #pp agent2.cookie_jar agent2.user_agent_alias = "Windows Mozilla" page = agent2.get('https://mevius.5ch.net/test/read.cgi/tech/1578068134/l50') form = page.form_with(:action=>'//mevius.5ch.net/test/bbs.cgi') form.field_with(:name=>'MESSAGE').value = 'テスト' next_page = agent2.submit(form) form2 = next_page.form_with(:action=>'../test/bbs.cgi?guid=ON') http://mevius.5ch.net/test/read.cgi/tech/1578068134/703
704: デフォルトの名無しさん (ワッチョイ 1f6a-RTUg) [] 2020/08/19(水) 10:13:04.91 ID:jdryYSd80 agent2.submit(form2) http://mevius.5ch.net/test/read.cgi/tech/1578068134/704
705: 700 (ワッチョイ 1f2c-1yu9) [sage] 2020/08/19(水) 10:21:48.83 ID:w/3evjlx0 そりゃ、個別のページのクッキーを解析したり、大変だよ。 お金をもらえる訳でもないのに、他人が作ったシステムを分析するのは それが嫌だから、漏れらは、selenium webdriver で、ブラウザにやらせる。 入力したり、ボタンを押したり、ブラウザを操作するだけだから、まだマシ http://mevius.5ch.net/test/read.cgi/tech/1578068134/705
706: 700 (ワッチョイ 1f2c-1yu9) [sage] 2020/08/19(水) 10:32:07.88 ID:w/3evjlx0 >>703 >form = page.form_with(:action=>'//mevius.5ch.net/test/bbs.cgi') >form2 = next_page.form_with(:action=>'../test/bbs.cgi?guid=ON') これらには、https: とか、付いていないけど、動くの? http://mevius.5ch.net/test/read.cgi/tech/1578068134/706
707: 700 (ワッチョイ 1f2c-1yu9) [sage] 2020/08/19(水) 10:38:39.32 ID:w/3evjlx0 簡単に言えば、serialize と同じなんだろう。 異なるアプリに、Ruby のオブジェクトを渡せない 1 などの数値も、"1" みたいな文字列になってしまうのだろう。 すべての型情報が無くなって、文字列になる。 だから、YAML.load とかを、使っているのだろう 今なら、JSON を使う事が多い http://mevius.5ch.net/test/read.cgi/tech/1578068134/707
708: デフォルトの名無しさん (ワッチョイ 1f6a-Mhwj) [] 2020/08/19(水) 14:06:31.62 ID:jdryYSd80 agent.getの時点でcookieの情報って得られてるんですね http://mevius.5ch.net/test/read.cgi/tech/1578068134/708
709: デフォルトの名無しさん (ワッチョイ 1f6a-Mhwj) [] 2020/08/19(水) 14:20:11.51 ID:jdryYSd80 >>705 seleniumはブラウザ操作でmechanizeはhttp解析?みたいな感じですか? http://mevius.5ch.net/test/read.cgi/tech/1578068134/709
710: デフォルトの名無しさん (ワッチョイ 1f35-6L5+) [] 2020/08/19(水) 20:08:35.13 ID:JONuvCWb0 >>689 よく調べたわけじゃ無いけど、 CSRF, クロスサイトリクエストフォージェリ、サイバー攻撃の一種対策されてるんじゃないかなぁ。 つまり、何某かのTokenが5chから送られていて、そいつをPOSTしないといけないとか。 5chのサイトからPOSTする時には、<input type=“hidden” value=“Token” name=“CSRF対策”>とかのタグがあって、Submitと共に自動送信される。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/710
711: 700 (ワッチョイ 1f2c-1yu9) [sage] 2020/08/19(水) 22:43:49.56 ID:w/3evjlx0 プログラム板のtest スレと、その確認画面は、どちらも、mevius.5ch.net だから、 クロスドメインアクセスにはならない ただ、HTML は本来、1回限りのアクセスで、前後のページには関係がない。 それを関係があるようにするために、ブラウザのクッキーを使って、セッションを結ぶ こういうセッションがあるものは難しい。 5ch 側は仕様を知っているけど、分析する方は、仕様を知らないから、 ずっと他人のアプリを解析しなければならない 漏れは、解析するのが面倒だから、selenium webdriver を使って、ブラウザにやらす。 ただ、これはブラウザの操作でも、難しい クッキーが無ければ確認画面が出て、有れば確認画面が出ない。 こういう条件判断をしないといけないから、難しい Ruby on Rails でも、システムテストには、Capybara を使うけど、 これは、seleniumで、Headless Chrome を使っている 他人のアプリの解析は、HTML ヘッダーなどを分析しないといけないから、かなり難しい。 スクレイピングをやってる香具師で、こういうのを知ってる香具師は、まずいない。 HTMLヘッダーなんて、無数の項目があるから http://mevius.5ch.net/test/read.cgi/tech/1578068134/711
712: 700 (ワッチョイ 1f2c-1yu9) [sage] 2020/08/19(水) 22:57:07.95 ID:w/3evjlx0 たぶん、Mechanizeは、Nokogiri みたいなものなんだろう その時点のHTML を取得するだけ。 ちょっとした、GET, POST などは、出来るけど JavaScript, Ajax で動的にページを作ったものには、対応できないとか http://mevius.5ch.net/test/read.cgi/tech/1578068134/712
713: デフォルトの名無しさん (ワッチョイ 1f35-6L5+) [] 2020/08/20(木) 06:07:11.62 ID:5ApdpCMn0 >>712 MechanizeはServerから受け取ったCookieを返すよ。 だから、POSTしたパラメータに問題があって上手くいかないのだ。 書き込み画面のHTMLからinputタグをscrapingしてhidden属性の付いてるのを探す事が先決。 見つかったらそのname, valueを取り出してPOSTパラメータへセットしてやれば良い。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/713
714: デフォルトの名無しさん (ワッチョイ 1f35-6L5+) [] 2020/08/20(木) 06:08:32.79 ID:5ApdpCMn0 seleniumが簡単だが、動作が重い。 Mechanizeでがんばれ! http://mevius.5ch.net/test/read.cgi/tech/1578068134/714
715: デフォルトの名無しさん (ワッチョイ 1f35-6L5+) [] 2020/08/20(木) 06:38:17.41 ID:5ApdpCMn0 >>687 これは違う! 外部・CP932 → Ruby内部・CP932 → 外部・CP932 が正解。 Ruby内部は、外部・CP932であればCP932だし、UTF-8なら、それに合わせて、Ruby内部・UTF-8なのだ。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/715
716: デフォルトの名無しさん (ワッチョイ 1f35-6L5+) [] 2020/08/20(木) 06:39:16.98 ID:5ApdpCMn0 >>708 agent.cookies http://mevius.5ch.net/test/read.cgi/tech/1578068134/716
717: デフォルトの名無しさん (ワッチョイ 1f35-6L5+) [] 2020/08/20(木) 07:05:48.71 ID:5ApdpCMn0 大抵のWebサイトのFormは、Formを表示したBrowserからしか、POSTできない様になっている。 その仕組みは、ServerがFormを表示するするHTMLを生成する時に、Tokenを埋め込み、そのTokenが帰って来なかったPOSTを弾くと言うものだ。 TokenはFormが表示されるごとに変更さる。(one time Token) https://html-coding.co.jp/knowhow/security/csrf/ http://mevius.5ch.net/test/read.cgi/tech/1578068134/717
718: 700 (ワッチョイ 1f2c-1yu9) [sage] 2020/08/20(木) 07:13:47.07 ID:nWR09WFB0 Rails にもある、CSRF のセキュリティー・トークンとかか? 2つのページが、同じセッションと判別できるような、仕組みを探さないといけない。 他人が作った、アプリを解析するのは大変 http://mevius.5ch.net/test/read.cgi/tech/1578068134/718
719: デフォルトの名無しさん (ワッチョイ 1f35-6L5+) [] 2020/08/20(木) 07:53:19.33 ID:5ApdpCMn0 >>718 違うんだなぁ。 RubyプログラムがいきなりPOSTしても成功しない。 一旦Form画面をScrapingすれば良いのだ。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/719
720: デフォルトの名無しさん (ワッチョイ 9f14-YpYZ) [sage] 2020/08/20(木) 09:46:21.48 ID:Myo84Br30 >>715 それも違う。RubyはUnicode対応で作られてる だから内部もUnicode Windows側からUTF16で渡された場合はUnicodeで受け取るし ANSIで渡された場合はUnicodeに変換して処理する 出力する場合はその反対 http://mevius.5ch.net/test/read.cgi/tech/1578068134/720
721: デフォルトの名無しさん (ワッチョイ 1f2c-1yu9) [sage] 2020/08/20(木) 10:42:37.67 ID:nWR09WFB0 Ruby の文字列は、混在できる ある文字列は、CP932 で、 別の文字列は、UTF-8 とか 何もしなければ、変換されない http://mevius.5ch.net/test/read.cgi/tech/1578068134/721
722: デフォルトの名無しさん (ワッチョイ ff7d-hMmK) [sage] 2020/08/20(木) 11:13:11.83 ID:FC2EZr4O0 >>719 kan = [ "\xE6\xBC\xA2\xE5\xAD\x97".force_encoding( Encoding::UTF_8 ), "\x8A\xBF\x8E\x9A".force_encoding( Encoding::CP932 ), "\xB4\xC1\xBB\xFA".force_encoding( Encoding::EUC_JP ), "\x1B\x24B4A;z\x1B(B".force_encoding( Encoding::ISO2022_JP ) ] puts kan kan.combination(2){ |a,b| p a == b } kan.size.times{|n| puts kan.inject(''){|r,s| r << s.encode(kan[n].encoding) } } puts kan.map{|s| s.encoding } http://mevius.5ch.net/test/read.cgi/tech/1578068134/722
723: デフォルトの名無しさん (ワッチョイ 7f01-08ML) [sage] 2020/08/20(木) 12:03:56.57 ID:tyNv301J0 >>715,720 君たちまずマニュアルを読もうか https://docs.ruby-lang.org/en/2.7.0/Encoding.html http://mevius.5ch.net/test/read.cgi/tech/1578068134/723
724: デフォルトの名無しさん (ワッチョイ 9f33-KILr) [sage] 2020/08/20(木) 13:07:43.70 ID:UjCnOWKd0 >>718 解析が大変かどうかはものによる。 セッションIDベースのWebアプリならともかく、ログインなしの掲示板なら大したことはないやろ。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/724
725: デフォルトの名無しさん (ワッチョイ ff8c-rgzE) [sage] 2020/08/20(木) 22:50:29.80 ID:Uplnh7Gz0 >>720 変換はせんだろ http://mevius.5ch.net/test/read.cgi/tech/1578068134/725
726: デフォルトの名無しさん (ワッチョイ 1f61-VqLe) [sage] 2020/08/21(金) 01:31:14.88 ID:SPVvFNrm0 Rubyをしばらく使ってきたが、やっぱり、ブロックの最後がendであることや、 0,1が共に真であること、複数行コメントが書きにくいこと、 構造体の書き方が new Person ではなく、Person.newであること、 Directory関連でワイルドカードを使うと、関連フォルダを全て変数に読み込んでから 動作し始めること、などが使いにくいので、node.jsに乗り換えようかなと思ってる。 Rubyが良い点は、それらの機能は使ったことは無いけど、 ・最初から用意されているメソッド群でmethodチェーンが書けること。 ・ブロック関数が書けること。 かな。 でも、使ったことがないということは、優先順位が低いと言うことではなかろうか。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/726
727: デフォルトの名無しさん (ワッチョイ 9f33-KILr) [sage] 2020/08/21(金) 10:50:02.63 ID:w5e9p4kz0 え。 そんな調子だと何を使ってもダメそう。w http://mevius.5ch.net/test/read.cgi/tech/1578068134/727
728: デフォルトの名無しさん (ワッチョイ 1f61-VqLe) [sge] 2020/08/21(金) 13:05:57.88 ID:SPVvFNrm0 >>727 個人的には、実世界では、能力はかなり高いと評価されているけれど。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/728
729: デフォルトの名無しさん (ワッチョイ 1f2c-1yu9) [sage] 2020/08/21(金) 14:15:07.59 ID:tDzk/wNZ0 0, 0.0, 空文字列、空配列、空辞書など、 各型に、偽がある言語は、バグる Ruby の偽は、nil, false だけ MISRA-C でも、( a ) みたいに、単独の数値型の変数で、真偽値を表すのは禁止されてる。 0 なら偽として使う方法 Ruby で、if ( b ) みたいに書けるのは、nil の時だけ偽だから。 0, 0.0, 空文字列、空配列、空辞書などでも真 または、b がbool 型の場合 http://mevius.5ch.net/test/read.cgi/tech/1578068134/729
730: デフォルトの名無しさん (エムゾネ FF9f-fHWV) [] 2020/08/21(金) 14:31:29.79 ID:2LaXNW9iF nil == false は false http://mevius.5ch.net/test/read.cgi/tech/1578068134/730
731: デフォルトの名無しさん (ワッチョイ 9f33-KILr) [sage] 2020/08/21(金) 14:33:13.81 ID:w5e9p4kz0 >>728 相対評価は、まわりのレベルがわからんので、なんとも。 元コメから判断すると、周辺まるごと低いのかな?と思わざるを得ない。w まあ、たまたま自分が使ってない特定機能をアレコレ言うのはアホに見えるのはたしか。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/731
732: デフォルトの名無しさん (ワッチョイ 9f33-KILr) [sage] 2020/08/21(金) 14:35:00.79 ID:w5e9p4kz0 >>729 型のないRubyでそんなことを言われても。w そんなの、たいした違いじゃないよ? http://mevius.5ch.net/test/read.cgi/tech/1578068134/732
733: デフォルトの名無しさん (ワッチョイ 1f61-VqLe) [sage] 2020/08/21(金) 14:49:57.72 ID:SPVvFNrm0 >>731 そんなことない。 非常に上層のごく一部の人しか入れないところだと言われている。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/733
734: デフォルトの名無しさん (エムゾネ FF9f-fHWV) [] 2020/08/21(金) 15:22:52.16 ID:2LaXNW9iF スキンのひとか http://mevius.5ch.net/test/read.cgi/tech/1578068134/734
735: デフォルトの名無しさん (JP 0H7f-08ol) [] 2020/08/21(金) 15:35:51.23 ID:dYZcDjdTH 学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net 数学 物理学 化学 生物学 天文学 地理地学 IT 電子 工学 言語学 国語 方言 など VM + ASM を書いた (C#, DX) * x86 ではない! simulationライブラリで純粋な関数式プログラミングをする UIライブラリ (C#, 2D) を作ったよ 連続と離散を統一した! 4Dエンジン matrixのライブラリ ある強力なFor関数 SQLライブラリ VM + ASM のダウンロード ttp://up.x0000.net/files/TSimulang.zip http://mevius.5ch.net/test/read.cgi/tech/1578068134/735
736: デフォルトの名無しさん (オッペケ Sr73-YieA) [sage] 2020/08/22(土) 00:05:39.01 ID:cH1OO8njr 「実世界では、能力はかなり高いと評価されている」っていう言い回しが最高に知性を感じないんですけど いや煽りとかじゃなくマジで http://mevius.5ch.net/test/read.cgi/tech/1578068134/736
737: デフォルトの名無しさん (ワッチョイ 9f14-YpYZ) [sage] 2020/08/22(土) 00:13:16.02 ID:rn2pygew0 異世界では無双している http://mevius.5ch.net/test/read.cgi/tech/1578068134/737
738: デフォルトの名無しさん (ワッチョイ 9f33-KILr) [sage] 2020/08/22(土) 02:33:00.24 ID:orN/hav20 >>736 非常に上層のごく一部の人しか入れないんだぞ! http://mevius.5ch.net/test/read.cgi/tech/1578068134/738
739: デフォルトの名無しさん (ワッチョイ ff8c-IEoI) [] 2020/08/22(土) 08:20:46.05 ID:lfF/bqLu0 非情に上層のごく一部の人しか入れないんだぞ! http://mevius.5ch.net/test/read.cgi/tech/1578068134/739
740: デフォルトの名無しさん (ワッチョイ 7f52-Qb6H) [sage] 2020/08/22(土) 08:46:37.28 ID:j5SL9Fsb0 >>736 あんまりちゃんと人と会話したりまともな本とかは読んだことがなくて、丁寧にかつちょっとカッコつけて話そうとしたらラノベとかで覚えた変な言い回ししか出てこなかった、と予想してみる http://mevius.5ch.net/test/read.cgi/tech/1578068134/740
741: デフォルトの名無しさん (ワッチョイ ffbb-ZIaG) [] 2020/08/22(土) 15:31:25.70 ID:rjSk5doP0 まあ、能力の高いっていうそこのお方は、Youtubeで流行ってる学歴ジャンケンでもして能力を示した方がいいんじゃん? 学歴だけが能力を示すものじゃないにしても、能力がどうの言い張るだけよりずっとマシだし、おおよその実力が周りの人も推定できるだろうからいいぜ! http://mevius.5ch.net/test/read.cgi/tech/1578068134/741
742: デフォルトの名無しさん (ワッチョイ ad61-CCZD) [sage] 2020/09/01(火) 22:10:17.03 ID:vLz2GEqc0 Rubyは、node.jsに比べて、ファイル出力のメソッド名が短いので楽。 fp=File.open("filename","w"); fp.print( "nanigshi=#{変数名}\n" ); みたいに書ける。node.jsだと、 fd = fs.openSync("filename", "w"); fs.writeSync(fd, `nanigshi=${変数名}\n` ); となり、キーワードが長い。逆引用符`が打ち込みにくいという 欠点も有る。 http://mevius.5ch.net/test/read.cgi/tech/1578068134/742
743: デフォルトの名無しさん (オッペケ Sr51-eS8N) [sage] 2020/09/01(火) 22:45:30.43 ID:Bhx0z62Fr US配列なら楽だぞ http://mevius.5ch.net/test/read.cgi/tech/1578068134/743
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 259 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s